|
Программирование >> Обработка исключительных ситуаций
Листинг 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, о котором рассказывается далее в этой главе, этот параметр также не учитывается.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |