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

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


Листинг 6.10 {продолжение)

for ( int i = 0; i < n; ++i )

Console.WriteC + a.NextC-10, 10) );


Console.WriteLineC \n Массив [0, 255]: ); byte[] mas = new byte[n];

a.NextBytesC mas ):

for (int i = 0; i < n; ++i) Console.WriteC

Результат работы программы: Диапазон [0, 1]:

0,02 0,4 0,24 0,55 0,92 0,84 0,9 Диапазон [0, 1000]:

248 ПО 467 771 657 432 354

Диапазон [-10, 10]: -8 9 -6 -10 7 4 9 -5 -2 Массив [0, 255]:

181 105 60 50 70 77 9 28 133 150

+ mas[i] );

0,78 0,78 0,74 943 101 642 -1

Рекомендации по программированию

Используйте для хранения данных массив, если количество однотипных элементов, которые требуется обработать в вашей программе, известно или, по крайней мере, известно максимальное количество таких элементов. В последнем случае память под массив выделяется по максимуму , а фактическое количество элементов хранится в отдельной переменной, которая вычисляется в программе.

При работе с массивом нужно обязательно предусматривать обработку исключения IndexOutOfRangeException, если индекс для обращения к массиву вычисляется в программе по формулам, а не задается с помощью констант или счетчиков циклов for.

СОВЕТ-

При отладке программ, использующих массивы, исходные данные удобно подготовить в текстовом файле. Это позволит продумать, какие значения элементов необходимо задать, чтобы протестировать выполнение каждой ветви программы. Например, исходные данные для программы, вычисляющей в одномерном массиве номер первого элемента, равного нулю, должны включать варианты, когда такой элемент встречается в массиве ни одного, один и более раз.

Если количество элементов, обрабатываемых программой, может быть произвольным, удобнее использовать не массив, а другие структуры данных, например параметризованные коллекции, которые рассматриваются в главе 13.



Рекомендации по программированию 151

При работе со строками необходимо учитывать, что в С# строка типа string является неизменяемым типом данных, то есть любая операция изменения строки на самом деле возвращает ее копию. Для изменения строк используется тип OnngBuilder. Прежде чем описывать в программе какое-либо действие со строками, полезно посмотреть, нет ли в списке элементов используемого класса подходящих методов и свойств.

Для эффективного поиска и преобразования текста в соответствии с заданными шаблонами используются так называемые регулярные выражения, которые рассмотрены в главе 15.



Глава 7

Классы: подробности

В этой главе мы продолжим знакомство с элементами классов, начатое в главе 5. Сначала мы рассмотрим дополнительные возможности методов, не описанные в главе 5, а затем перейдем к новым элементам класса - индексаторам, операциям и деструкторам.

Перегрузка методов

Часто бывает удобно, чтобы методы, реализующие один и тот же алгоритм для различных типов данных, имели одно и то же имя. Если имя метода является осмысленным и несет нужную информацию, это делает программу более понятной, поскольку для каждого действия требуется помнить только одно имя. Использование нескольких методов с одним и тем же именем, но различными типами параметров называется перегрузкой методов.

ПРИМЕЧАНИЕ-

Мы уже использовали перегруженные версии методов стандартных классов и даже сами создавали перегруженные методы, когда описывали в классе несколько конструкторов.

Компилятор определяет, какой именно метод требуется вызвать, по типу фактических параметров. Этот процесс называется разрешением (resolution) перегрузки. Тип возвращаемого методом значения в разрешении не участвует . Механизм разрешения основан на достаточно сложном наборе правил, смысл которых сводится к тому, чтобы использовать метод с наиболее подходящими аргументами и выдать сообщение, если такой не найдется. Допустим, имеется четыре варианта метода, определяющего наибольшее значение:

1 Если последний параметр метода имеет модификатор params, о котором рассказывается далее в этой главе, этот параметр также не учитывается.



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

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