Герберт Шилдт - C# 4.0: полное руководство
- Название:C# 4.0: полное руководство
- Автор:
- Жанр:
- Издательство:ООО И.Д. Вильямс
- Год:2011
- Город:Москва -- Киев
- ISBN:978-5-8459-1684-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Герберт Шилдт - C# 4.0: полное руководство краткое содержание
В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки.
Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию
C# 4.0: полное руководство - читать онлайн бесплатно ознакомительный отрывок
Интервал:
Закладка:
public static ushort ToUIntl6(byte[] value, int startlndex) - Преобразует два байта, начиная с элемента массива value [startlndex] , в эквивалентное значение типа ushortи возвращает результат
public static uint ToUInt32(byte[] value, int startlndex) - Преобразует четыре байта, начиная с элемента массива value[startlndex] , в эквивалентное значение типа uintи возвращает результат
public static ulong ToUInt64(byte[] value, int startlndex) - Преобразует восемь байтов, начиная с элемента массива value[startlndex ] , в эквивалентное значение типа ulongи возвращает результат
Генерирование случайных чисел средствами класса Random
Для генерирования последовательного ряда случайных чисел служит класс Random
. Такие последовательности чисел оказываются полезными в самых разных ситуациях, включая имитационное моделирование. Начало последовательности случайных чисел определяется некоторым начальным числом, которое может задаваться автоматически или указываться явным образом.
В классе Random
определяются два конструктора.
public Random()
public Random(int seed)
Первый конструктор создает объект типа Random
, использующий системное время для определения начального числа. А во втором конструкторе используется начальное значение seed, задаваемое явным образом.
Методы, определенные в классе Random, перечислены в табл. 21.14.
Таблица 21.14. Методы, определенные в классе Random
Метод - Назначение
public virtual int Next() -Возвращает следующее случайное целое число, которое будет находиться в пределах от 0 до Int32.MaxValue-1включительно
public virtual int Next(int maxValue) - Возвращает следующее случайное целое число, которое будет находиться в пределах от 0 до maxValue-1 включительно
public virtual int Next(int minValue, int maxValue) - Возвращает следующее случайное целое число, которое будет находиться в пределах от minValue до maxValue-1 включительно
public virtual void NextBytes(byte[] buffer) - Заполняет массив buffer последовательностью случайных целых чисел. Каждый байт в массиве будет находиться в пределах от 0 до Byte .MaxValue-1включительно
public virtual double NextDouble() -Возвращает из последовательности следующее случайное число, которое представлено в форме с плавающей точкой, больше или равно 0,0 и меньше 1,0
protected virtual double Sample() -Возвращает из последовательности следующее случайное число, которое представлено в форме с плавающей точкой, больше или равно 0,0 и меньше 1,0. Для получения несимметричного или специального распределения случайных чисел этот метод необходимо переопределить в производном классе
Ниже приведена программа, в которой применение класса Random демонстрируется на примере создания компьютерного варианта пары игральных костей.
// Компьютерный вариант пары игральных костей.
using System;
class RandDice {
static void Main() {
Random ran = new Random();
Console.Write(ran.Next(1, 7) + " ");
Console.WriteLine(ran.Next(1, 7));
}
}
При выполнении этой программы три раза подряд могут быть получены, например, следующие результаты.
5 2
4 4
1 6
Сначала в этой программе создается объект класса Random. А затем в ней запрашиваются два случайных значения в пределах от 1 до 6.
Управление памятью и класс GC
В классе GC инкапсулируются средства "сборки мусора". Методы, определенные в этом классе, перечислены в табл. 21.15.
Таблица 21.15. Методы, определенные в классе GC
Метод - Назначение
public static voidAddMemoryPressure(long bytesAllocated) - Задает в качестве параметра bytes Allocated количество байтов, распределенных в неуправляемой области памяти
public static void CancelFullGCNotification() -Отменяет уведомление о “сборке мусора”
public static void Collect() public static void Collect(int generation) - Инициализирует процесс “сборки мусора”
public static void Collect (int generation, GCCollectionMode mode) - Инициализирует процесс “сборки мусора” в областях памяти с номерами поколений от 0 до generation
public static int CollectionCount (int generation) - Инициализирует процесс “сборки мусора” в областях памяти с номерами поколений от 0 до generation в'режиме, определяемом параметром mode
public static int GetGeneration (object obj) - Возвращает количество операций “сборки мусора”, выполненных в области памяти с номером поколения generation Возвращает номером поколения для области памяти, доступной по ссылке obj
public static int GetGeneration(WeakReference wo) - Возвращает номер поколения для области памяти, доступной по “слабой" ссылке, задаваемой параметром wo. Наличие “слабой" ссылки не защищает объект от “сборки мусора”
public static long GetTotalMemory(bool forceFullCollection) - Возвращает общий объем памяти (в байтах), выделенной на данный момент. Если параметр forceFullCollection имеет логическое значение true,то сначала выполняется “сборка мусора”
public static void KeepAlive(object obj) Создает ссылку на объект obj,защищая его от “сборки мусора”. Действие этой ссылки оканчивается после выполнения метода KeepAlive()
public static void RegisterForFullGCNotification(int maxGenerationThreshold, int largeObjectHeapThreshold) - Разрешает уведомление о “сборке мусора”. Значение параметра maxGenerationThreshold обозначает количество объектов второго поколения в обычной “куче", которые будут инициировать уведомление. А значение параметра largeObjectHeapThreshold обозначает количество объектов в крупной “куче", которые будут инициировать уведомление. Оба значения должны быть указаны в пределах от 1 до 99
public static void RemoveMemoryPressure(long bytesAllocated) - Задает в качестве параметра bytesAllocated количество байтов, освобождаемых в неуправляемой области памяти
public static void ReRegisterForFinalize(object obj) - Вызывает деструктор для объекта obj. Этот метод аннулирует действие метода SuppressFinalize()
public static void SuppressFinalize(object obj) - Препятствует вызову деструктора для объекта obj
public static GCNotificationStatus WaitForFullGCApproach() -Ожидает уведомления о том, что должен произойти полный цикл “сборки мусора”. Здесь GCNotificationStatus— перечисление, определенное в пространстве имен System
public static GCNotificationStatus WaitForFullGCApproach(int millisecondsTimeout) - Ожидает уведомления о том, что долженпроизойти полный цикл “сборки мусора", в течение времени, задаваемого пара метром millisecondsTimeout. Здесь GCNotificationStatus— перечисление, определенное в пространстве имен System
Читать дальшеИнтервал:
Закладка: