Главная » Просмотр файлов » 1629295407-c61bfe4caba98380ea3e7cdae6295416

1629295407-c61bfe4caba98380ea3e7cdae6295416 (846200), страница 99

Файл №846200 1629295407-c61bfe4caba98380ea3e7cdae6295416 (Шилдт Герберт - Полный справочник по C#) 99 страница1629295407-c61bfe4caba98380ea3e7cdae6295416 (846200) страница 992021-08-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 99)

При использовании второй версии конструктора начальное число задаетсяв параметре seed.Методы, определенные в классе Random, перечислены в табл. 19.14.Таблица 19.14. Методы, определенные в классе RandomМетодОписаниеpublic virtual int Next()Возвращает следующее случайное число типа int, котороебудет находиться в диапазоне 0-Int32.MaxValue-1,включительноВозвращает следующее случайное число типа int, котороебудет находиться в диапазоне 0-upperBound-1,включительноВозвращает следующее случайное число типа int, котороебудет находиться в диапазоне lowerBound - upperBound-1,включительноpublic virtual intNext(int upperBound)public virtual intNext(int lowerBound,int upperBound)public virtual voidNextBytes(byte[] buf)public virtual doubleNextDouble()protected virtual doubleSample()Заполняет буфер buf последовательностью случайных целыхчисел.

Каждый байт в массиве будет находиться в диапазоне0-Byte.MaxValue-1, включительноВозвращает следующее случайное число изпоследовательности (представленное в форме с плавающейточкой), которое будет больше или равно числу 0,0 и меньше1,0Возвращает следующее случайное число изпоследовательности (представленное в форме с плавающейточкой), которое будет больше или равно числу 0,0 и меньше1,0. Чтобы создать несимметричное или специализированноераспределение, этот метод необходимо переопределить апроизводном классеРассмотрим программу, в которой демонстрируется использование класса Randomпосредством создания парных результатов игры в кости:// Автоматизированная игра в кости,using System;class RandDice {}public 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.Глава 19.

Пространство имен System535Управление памятью и класс GCВ классе GC инкапсулировано C#-средство сбора мусора. Методы, определенные вэтом классе, представлены в табл. 19.15. В нем также определено следующее свойство,предназначенное только для чтения:public static int MaxGeneration { get; }Свойство MaxGeneration содержит номер поколения самой старой областивыделенной памяти. При каждом выделении памяти (т.е при использовании оператора new)новой выделяемой области присваивается номер поколения, равный нулю Номера,соответствующие ранее выделенным областям памяти, при этом увеличиваются.Следовательно, свойство MaxGeneration означает номер области памяти, которая былавыделена раньше других Наличие номеров поколений способствует повышениюэффективности процесса сбора мусора.В большинстве приложений программисты не пользуются возможностями класса GC.Но в отдельных случаях они могут оказаться весьма полезными Например, методCollect() позволяет выполнять сбор мусора в удобное для вас время.

Обычно этопроисходит в моменты, неизвестные вашей программе. Но поскольку процесс сбора мусоразанимает некоторое время, у вас могут быть вполне обоснованные причины для того, чтобыэто не происходило при выполнении критических с точки зрения времени задач, либо выхотели бы для сбора мусора и других вспомогательных операций использоватьвынужденные периоды ожидания (простоя).GC — это sealed-класс, т.е он не может иметь потомковТаблица 19.15. Методы, определенные в классе GСМетодОписаниеpublic static voidCollect()public static voidCollect(int MaxGen)public static intGetGeneration(object o)public static intGetGeneration(WeakReference o)Инициализирует процесс сбора мусораpublic static longGetTotalMemory(bool collect)public static voidKeepAlive(object o)public static voidReRegisterForFmalize(object o)public static voidSuppressFinalize(object o)public static voidWaitForPendingFinalizers()536Инициализирует процесс сбора мусора для областейпамяти с номерами поколений от 0 до MaxGenВозвращает номер поколения для области памяти, накоторую ссылается параметр оВозвращает номер поколения для области памяти,адресуемой "слабой" ссылкой, заданной параметром оНаличие "слабой" ссылки не защищает объект от угрозыподвергнуться процессу сбора мусораВозвращает общий объем выделенной памяти (в байтах)на данный момент Если параметр collect равензначению true, до выдачи результата выполняется сбормусораСоздает ссылку на объект о, тем самым защищая его отугрозы подвергнуться операции сбора мусораВызывает выполнение деструктора Этот методаннулирует действие Метода SuppressFinalize()Препятствует выполнению деструктораПрекращает выполнение вызывающего потока до тех пор,пока не будут выполнены все незаконченные деструкторыЧасть II.

Библиотека C#Класс ObjectObject — это класс, который лежит в основе C#-типа object. Члены классаObject рассматривались в главе 11, но ввиду его центральной роли в C# (и ради удобствачитателя) его методы снова приводятся в табл. 19.16. В классе Object определен одинконструктор:Object()Этот конструктор создает пустой объект.Таблица 19.16. Методы, определенные в классе ObjectМетодНазначениеpublic virtual bool Equals(object ob)Возвращает значение true, если вызывающий объектявляется таким же, как объект, адресуемый параметром ob.

Впротивном случае возвращает значение falseВозвращает значение true, если объект ob1 является такимже, как объект ob2. В противном случае возвращает значениеfalseВыполняет завершающие действия перед процессом сборамусора. В C# метод Finalize() доступен через деструкторВозвращает хеш-код, связанный с вызывающим объектомpublic static bool Equals(object ob1,object ob2)protected Finalize()public virtual intGetHashCode()public Type GetType()protected objectMemberwiseClone()public static boolReferenceEquals(object ob1,object ob2)public virtual stringToString()Получает тип объекта во время выполнения программыВыполняет "поверхностное копирование" объекта, т.е.копируются члены, но не объекты, на которые ссылаются этичленыВозвращает значение true, если объекты ob1 и ob2ссылаются на один и тот же объект. В противном случаевозвращает значение falseВозвращает строку, которая описывает объектИнтерфейс IComparableВо многих классах необходимо реализовать интерфейс IComparable, поскольку онс помощью методов, определенных в C#-библиотеке, позволяет сравнить два объекта.Интерфейс IComparable легко реализовать, поскольку он состоит только из одногометода:int CompareTo(object v)Этот метод сравнивает вызывающий объект со значением параметра v.

Методвозвращает положительное число, если вызывающий объект больше объекта v, нуль, еслидва сравниваемых объекта равны, и отрицательное число, если вызывающий объект меньшеобъекта v.Глава 19. Пространство имен System537Интерфейс IConvertibleИнтерфейс IConvertible реализован всеми структурами нессылочных типов. Онопределяет преобразование типов. Как правило, в создаваемых программистами классахэтот интерфейс реализовать не нужно.Интерфейс ICloneableРеализуя интерфейс ICloneable, вы позволяете создавать копию объекта. Винтерфейсе ICloneable определен только один метод:object Clone()Этот метод создает копию вызывающего объекта.

От того, как реализован методClone(), зависит вид создаваемой копии. Существует два вида копий: детальная иповерхностная. При создании копии первого вида копия и оригинал совершеннонезависимы. Следовательно, если исходный объект содержит ссылку на другой объект O, тов результате детального копирования будет также создана копия объекта O. Вповерхностной копии копируются члены, но не объекты, на которые ссылаются эти члены.Если объект ссылается на другой объект O, то по окончании поверхностного копированиякак копия, так и исходный объект будут ссылаться на один и тот же объект O, и любыеизменения, вносимые в объект O, отразятся и на копии, и на оригинале. Обычно методClone() реализуется так, чтобы выполнялось детальное копирование.

Поверхностныекопии можно создавать с помощью метода MemberwiseClone(), который определен вклассе Object.Рассмотрим пример, который иллюстрирует использование интерфейсаICloneable. В следующей программе создается класс Test, который содержит ссылку накласс X. В классе Test для создания детальной копии используется метод Clone().// Демонстрация использования интерфейса ICloneable.using System;class X {public int a;}public X(int x) {a = x;}class Test : ICloneable {public X o;public int b;public Test(int x, int y) {o = new X(x);b = y;}public void show(string name) {Console. Write("Значения объекта " + name + " : ");Console.WriteLine("o.a: {0}, b: {1}", o.a, b);}538Часть II.

Характеристики

Тип файла
PDF-файл
Размер
5,05 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее