|
Программирование >> Обработка исключительных ситуаций
Класс Random При отладке программ, использующих массивы, удобно иметь возможность генерировать исходные данные, заданные случайным образом. В библиотеке С# на этот случай есть класс Random, определенный в пространстве имен System. Таблица 6.5 (продолжение) Название Вид Описание Replace Метод Замена всех вхождений заданной подстроки или символа новой подстрокой или символом ToString Метод Преобразование в строку типа string Пример применения методов приведен в листинге 6.9. Листинг 6.9. Работа со строками типа StringBuilder using System; using System.Text; namespace ConsoleAppl icationi { class Classl { static void MainO Console.WriteC Введите зарплату: ); double salary = double.ParseC Console.ReadLineO ); StringBuilder a = new StringBuiIder(); a.Appendt зарплата ); a.AppendFormatC {0. 6:C} - в год {1, 6:C} . salary, salary * 12 ); Console.WriteLineC a ); a.ReplaceC p. , тыс.$ ); Console.WriteLineC А лучше бгло бы: + a ); Результат работы программы: Введите зарплату: 3500 зарплата 3 500.00р. - в год 42 000,00р. А лучше было бы: зарплата 3 500,ООтыс.$ - в год 42 000.ООтыс.$ Емкость буфера не соответствует количеству символов в строке и может увеличиваться в процессе работы программы как в результате прямых указаний программиста, так и вследствие выполнения методов изменения строки, если строка в результате превышает текущий размер буфера. Программист может уменьшить размер буфера с помощью свойства Capacity, чтобы не занимать лишнюю память. Для получения псевдослучайной последовательности чисел необходимо сначала создать экземпляр класса с помощью конструктора, например: Ondom а = new Random!); 1 Ondom b = new Random! 1 ); 111 Есть два вида конструктора: конструктор без параметров (оператор 1) использует начальное значение генератора, вычисленное на основе текущего времени. В этом случае каждый раз создается уникальная последовательность. Конструктор с параметром типа int (оператор 2) задает начальное значение генератора, что обеспечивает возможность получения одинаковых последовательностей чисел. Для получения очередного значения серии пользуются методами, перечисленными в табл. 6.6. Таблица 6.6. Основные методы класса System.Random Название Описание iBxt!) Возвращает целое положительное число во всем положительном диапазоне типа i nt .ехКмакс) Возвращает целое положительное число в диапазоне [0, макс] 8ХТ.(мин, макс) Возвращает целое положительное число в диапазоне [мин, макс] iextByt.es(массив) Возвращает массив чисел в диапазоне [0, 255] .extDoublе() Возвращает вещественное положительное число в диапазоне [0. 1) Пример применения методов приведен в листинге 6.10. Листинг 6.10. Работа с генератором псевдослучайных чисел .sing System; -amespace ConsoleApplicationi class Classl { static void MainO Random a = new Random(); Random b = new Random( 1 ); const int n = 10; Console.WriteLine! \n Диапазон [0, 1]: ); for(inti=0; i< n;+ + i) Console.Write! {0 ,6:0.##} , a.NextDouble() ); Console.WriteLine! An Диапазон [0, 1 000]: ); for ( int l = 0; i < n; + + i ) Console.Write! + b.Next( 1000 ) ); Console.WriteLine! \n Диапазон [-10, 10]: ); Данные: поля и константы
По умолчанию элементы класса считаются закрытыми (private). Для полей класса этот вид доступа является предпочтительным, поскольку ноля определяют внутреннее строение класса, которое должно быть скрыто от пользователя. Все методы класса имеют непосредственный доступ к его закрытым полям. ВНИМАНИЕ- Поля, описанные со спецификатором static, а также константы существуют в единственном экземпляре для всех объектов класса, поэтому к ним обращаются не через имя экземпляра, а через имя класса. Если класс содержит только статические элементы, экземпляр класса создавать не требуется. Именно этим фактом мы пользовались во всех предыдущих листингах. Обращение к полю класса выполняется с помощью операции доступа (точка). Справа от точки задается имя поля, слева - имя экземпляра для обычных нолей или имя класса для статических. В листинге 5.1 приведены пример простого класса emio и два способа обращения к его полям. Листинг 5.1. Класс Demo, содержащий поля и константу .sing System. amespace Consol eAppl icationi class { Demo public int a = 1; public const double public static string double y; с = s = 1.66; Demo поле данных константа II статическое поле класса закрытое поле данных class Classl { static void MainO Demo x = new Demo(); Console.WriteLine! x.a ); Console.WriteLine! Demo.с ): Console.WriteLine! Demo.s ); создание экземпляра класса Demo x.a - обращение к полю класса Demo.с - обращение к константе обращение к статическому полю
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |