Программирование >>  Обработка исключительных ситуаций 

1 ... 47 48 49 [ 50 ] 51 52 53 ... 142


Класс 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]: );



Данные: поля и константы

Спецификатор

Описание

protected internal

Доступ только из данного и производных классов и из данной сборки

private

Доступ только из данного класса

static

Одно поле для всех экземпляров класса

readonly

Поле доступно только для чтения

volatile

Поле может изменяться другим процессом или системой

По умолчанию элементы класса считаются закрытыми (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.с - обращение к константе обращение к статическому полю



1 ... 47 48 49 [ 50 ] 51 52 53 ... 142

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика