Г. Шилдт - С#4.0 Полное руководство (1160795), страница 153
Текст из файла (страница 153)
21.13 Метод Назначение 772 Часть (1. Библиотека С№ риЬ11с ягас№с Ьуте[] ЯеГВуьея(ияпогс иа1ие) риЬ1гс ягасзс е(оиЬ1е 1пгб4ВгсяТоЭоиЬ1е(1опд т а1ие) риЬ11с ягагзс Ьос1 ТоВоо1еап (Ьусе[] га1ие, Тпг ягагг?пе(ех) риЬ11с ясагдс спаг ТоСЛаг(Ьуге[] иа1ие, Тпг лпбех) риЬ11с ягас№с г(оиЬ1е ТоРоиЬ1е (Ьусе[] га1ие, 1пг ясагс1пг)ех) риЬ11с ясасдс япогг То1пг16(Ьуге[] иа1ие, 1пс ягагсТпе(ех) риЬ11с ягас1с Тпс То1пг32 (Ьусе [] иа1ие, Тпс ясаггХпг(ех) риЬ11с ягаг1с 1опд То1псб4(Ьуге[] иа1ие, гпс ясагс1пг(ех) риЬ11с ягасзс Т1оас ТоЯ№пд1е (ЬуГе [] иа1ие, Тпг ягагг1пг)ех) риЬТ№с ясас1с ягг1пд Тоаггдпд(Ьусе [] иа1ие) риЬ11с ягаГТс ясг1пд ТоВГгдпд (Ьуге[] иа1ие, 1пг ягагс1пг)ех) риЬ11с ягас1с ясг1пд ТсЯсгзпд(Ьуге[] иа1ие, 1пг ягагг1пг(ех, Тпг 1епдСП) риЬ11с ягаг№с ияпогт Тоитпс16(Ьусе[] иа1ие, Тпс ясагс1пс(ех) риЬ11с ятаг1с и1пс ТоВ1пг32 (Ьуге [] иа1ие, Тпг ягагстпг(ех) Преобразует значение иа1ие в двухбайтовый массив и возвращает результат Преобразует значение га1ие в значение типа г)оиЬ1е и возвращает результат Преобразует байт из элемента массива, указываемого по индексу иа1ие [ягаггхпе)ех], в эквивалентное значе- ние типа Ьоо1 и возвращает результат.
Ненулевое значе- ние преобразуется в логическое значение ггие, а нуле- вое — в логическое значение Та1яе Преобразует два байта, начиная с элемента массива иа1ие [1пе(ех], в эквивалентное значение типа спаг и возвращает результат Преобразует восемь байтов, начиная с элемента массива иа1не [ я га ге 1пе(ех], в эквивалентное значение типа «(оиЬ1е и возвращает результат Преобразует два байта, начиная с элемента массива из 1ие [ я гя ге 1пе(ех], в эквивалентное значение типа яьогс и возвращает результат Преобразует четыре байта, начиная с элемента массива иа1ие [ягагг1пг(ех], в эквивалентное значение типа 1пс и возвращает результат Преобразует восемь байтов, начиная с элемента массива иа1ие [ ягагг1пе)ех], в эквивалентное значение типа 1опд и возвращает результат Преобразует четыре байта, начиная с элемента массива иа1ие [ягаггтпг(ех], в эквивалентное значение типа т1оас и возвращает результат Преобразует байты из массива иа1ие в символьную строку.
Строка содержит шестнадцатеричные значения, связанные с этими байтами и разделенные дефисами Преобразует байты из массива иа1ие в символьную строку, начиная с элемента ия1ие [ягаггтпг)ех]. Стро- ка содержит шестнадцатеричные значения, связанные с этими байтами и разделенные дефисами Преобразует байты из массива иа1ие в символьную строку, начиная с элемента иа1ие [ягаггтпг(ех] и включая число элементов, определяемых параметром 1епдгп. Строка содержит шестнадцатеричные значения, связанные с этими байтами и разделенные дефисами Преобразует два байта, начиная с элемента массива иа1ие [ ягаггтпе(ех], в эквивалентное значение типа ияпсгт и возвращает результат Преобразует четыре байта, начиная с элемента массива иа1не [ ягягг1пг(ех], в эквивалентное значение типа и№пг и воза ащает ез льтат Глава 21.
Пространство имен Зувтею 773 Окончание табл. 21.13 Назначение Метод риЬ11с эгагас и1опо То01пгба (Ьуге [] ча1ие, Тпс зсагсепс)ех) Преобразует восемь байтов, начиная с элемента массива ча1се [ эСасг1пг)ех], в эквивалентное значение типа и1опг1 и возвращает результат Генерирование случайных чисел средствами класса мапбо1в Для генерирования последовательного ряда случайных чисел служит класс Васс)от. Такие последовательности чисел оказываются полезными в самых разных ситуациях, включая имитационное моделирование. Начало последовательности случайных чисел определяется некоторым начальным числом, которое может задаваться автоматически или указываться явным образом. В классе Васс)от определяются два конструктора. риЬ11с Яапс)ст () риЫгс Капает(ьпс зеег() таблица 21.14.
Методы, определенные в классе Вапс]от Метод Назначение риЬ11с ч1ггиа1 Тпг Нехг() Возвращает следующее случайное целое число, которое будет находиться в пределах от 0 до гпг 32 . Нахча1ие — 1 включительно Возвращает следующее случайное целое число, которое будет находиться в пределах от 0 до тахиа1 ие-1 включительно Возвращает следующее случайное целое число, которое будет находиться в пределах от туп ча1 ив до тах(га1ие-1 включительно Заполняет массив ЬиТГет последовательностью случайных целых чисел. Каждый байт в массиве будет находиться в пределах от 0 до Вусе.
Нахча1ие-1 включительно Возвращает из последовательности следующее случайное число, которое представлено в форме с плавающей точкой, больше или равно 0,0 и меньше 1,0 Возвращает из последовательности следующее случайное число, которое представлено в форме с плавающей точкой, больше или равно 0,0 и меньше 1,0. Для получения несимметричного или специального распределения случайных чисел этот метод необходимо переопределить в производном классе риЬ11с чьггиа1 ьпг алехе (Тпг тах(га1ие) риЬ11с чьггиа1 Тпг Нехг (Тпг тупча1ие, 1пг тах)та1ие) риЬ11с чагсиа1 чогс) Иехгвугев(Ьуге[] ЬиГГет) риЬ11с чйггиа1 г)оиЬ1е ЫехгооиЬ1е () ргогесгес) чгггиа1 г)оиЬ1е Яатр1е() Первый конструктор создает объект типа Васс(от, использующий системное время для определения начального числа.
А во втором конструкторе используется начальное значение эеес(, задаваемое явным образом. Методы, определенные в классе Вапг)от, перечислены в табл. 21.14. 774 Часть Н. Библиотека О() Ниже приведена программа, в которой применение класса Напс(ов демонстрируется на примере создания компьютерного варианта пары игральных костей.
/! Компьютерный вариант пары игральыых костей. чягпд Вуятевс с1аяя Яапевьсе ятаС1с чоье Ма1п() ( яапс(ов гап = пен яапс(ов() Сопяо1е .Иггге (сап .Нехг (1, 7) Сопяо1е.нг1Сеъьпе(гап.кехг(1, 7)); ) ) При выполнении этой программы три раза подряд могут быть получены, например, следующие результаты. 5 2 1 б Сначала в этой программе создается объект класса напс(ов. А затем в ней запрашиваются два случайных значения в пределах от 1 до 6. Управление памятью и иласс И', В классе ОС инкапсулируются средства "сборки мусора". Методы, определенные в этом классе, перечислены в табл.
21.15. Таблица 21.15. Методы, определенные в классе ВС Метод Назначение рпЫ1с вгат1с чо1с( Со11есг (1пг депегагцоп, ОССо11есс1опиос(е вос(е) рпЫ1с вгас1с 1пг Со11ессдопСоппг(1пг депегагуоп) роЫ1с ягаг1с 1пт Оегйепегат1оп(оЬбест оЬ7') роЬ1гс всасьс чо1с)лс)с(Мевогургеввпге(1опд Ьугевд11осагесй рпЫ1с втагьс чо1с) Сапсе1Гп110СНог111сас1оп() рпЫ1с вгагьс чо1с( Со11ест () рпЫ1с всаг1с чо1с( Со11ес1(1пс депегагуоп) Задает в качестве параметра ьусевл11оса тес( количество байтов, распределенных в неуправ- ляемой области памяти Отменяет уведомление о "сборке мусора" Инициализирует процесс "сборки мусора" Инициализирует процесс "сборки мусора" в об- ластях памяти с номерами поколений от О до депега Стоп Инициализирует процесс "сборки мусора" в об- ластях памяти с номерами поколений от О до депега Сцоп в'режиме, определяемом пара- метром вес(е Возвращает количество операций "сборки му- сора", выполненных в области памяти с номе- ром поколения депегас1оп Возвращает номером поколения для области памяти, доступной по ссьмке оЬ7' Метод Назначение риЫ1с ясассс 1пс ОегбепегаС1еп(Хеакрегегепсе ио) риЫТс ясас1с 1опд ОеСТога1нетогу(Ьоо1 Тогсери11Со11есС1оп) риЬ11с ягагсс чо1с( КеерА11че(оЬ1есС оЬт') риЫТс ягаС1с чо1с( КедсяС егрогГи110СИоС111сагсоп (гп С тахОепегаС1опТЛгеяЛо1г), 1пС 1агдеОЬт'есСНеарТЛгеяЛо1г() риЬ11с всасус чесс( КеточеневогуРгеяяиге(1опд ЬугеяА11осагеВ) риЫ1с ясас1с чо1г) Кеяед1вгегГогрупа11ге(оЬ1есС оЬ)') риЫТс ягагсс чо1с( БирргеяяГ1па11ге(оЬбесС оЬ1) риЫ1с ягагсс ССноС111саС1опБСагия Ха1СГогри116САрргоасп() риЫ1с вгагсс ССХогсвссаС1опБСагия Ха1СГогри116САрргоасп(гпС ю1111яесопг(яТ1теоиг) риЬ11с ягаС1с ОСНоС111сагсопБСагия Ха1СГогГи116ССовр1еге() Глава 21.
Пространство имен Буя1егп Т75 ГГ одолжение табл. 21.15 Возвращает номер поколения для области памяти, доступной по "слабой" ссылке, задаваемой параметром но. Наличие "слабой" ссылки не защищает объект от "сборки мусора" Возвращает общий объем памяти (в байтах), выделенной на данный момент. Если параметр Тогсери11со11есс1оп имеет логическое значение сгие, то сначала выполняется "сборка мусора" Создает ссылку на объект оЬ1, защищая его от "сборки мусора". Действие этой ссьмки оканчивается после выполнения метода КеерА11че() Разрешает уведомление о "сборке мусора". Значение параметра гаахсепега суиптЛгеяло1г( обозначает количество объектов второго поколения в обычной "куче", которые будут инициировать уведомление. д значение параметра 1агдеОЬ1 еег)(еарТЛгеяпо1с' обозначает количество объектов в крупной "куче", которые будут инициировать уведомление.
Оба значения должны быть указаны в пределах от 1 до 99 Задает в качестве параметра ЬусеяА11ося Сег( количество байтов, освобождаемых в неуправляемой области памяти Вызывает деструктор для объекта оЬ1. Этот метод аннулирует действие метода Бирргеяяргпа11ге() Препятствует вызову деструктора для объекта оЬт' Ожидает уведомления о том, что должен произойти полный цикл "сборки мусора". Здесь ОсхосссусассопБсасия — перечисление, определенное в пространстве имен Буясет Ожидает уведомления о том, что должен произойти полный цикл "сборки мусора", в течение времени, задаваемого параметром т1111весопг(я Тутеои С.
Здесь Осхосссссас1опБсасия — перечисление, ОПрЕдЕЛЕННОЕ В ПрОСтраНСтВЕ ИМЕН Буя Сот Ожидает уведомления о завершении полного цикла "сборки мусора". Здесь ОсхосссссасдопБгасия — перечисление, определенное в пространстве имен Буягегл 776 Часть Н. Библиотека С() Окончание табл.
21.15 Назначение Метод ри)о11с ясасйс ССНос1Ггсаггопвсагпя Иа1ГГогГп116ССотр1есе(1пс т1111яесопйвгутеоис) Ожидает уведомления о завершении полного цикла "сборки мусора" в течение времени, задаваемого параметром т1111яесопс)яТ1теоиг. Здесь ясног1Г1саг1опягагпв — перечисление, определенное в пространстве имен Яуясет Прекращает выполнение вызывающего потока до тех пор, пока не будут выполнены все вызванные и незавершенные деструкторы рп)з11с ясасьс но1с( Иа1ГГогРепе)1пг1Г1па11зегв() Кроме того, в классе ЯС определяется следующее доступное только для чтения свойство: роо11с ягасьс ьпс Нахвепегасьоп ( деГГ ) Свойство МахбепегаС1оп содержит максимальный номер поколения, доступный для системы. Номер поколения обозначает возраст выделенной области памяти.
Чем старше выделенная область памяти, тем больше номер ее поколения. Номера поколений позволяют повысить эффективность работы системы "сборки мусора". В большинстве приложений возможносги класса СС не используются. Но в особых случаях они оказываются весьма полезными. Допустим, что требуется организовать принудительную "сборку мусора" с помощью метода Со11есг () в выбранный момент времени. Как правило, "сборка мусора" происходит в моменты, не указываемые специально в программе.