Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Билеты 1-12 (от Кати).doc
Скачиваний:
3
Добавлен:
24.04.2019
Размер:
298.5 Кб
Скачать

7) Строковые преобразования. Класс Convert:

Не существует явного преобразования арифметических типов в строки! Операция «приведение к типу» здесь невозможна. Однако, в базовом классе Object имеется и определён метод ToString. Так как все арифметические типы данных считаются потомками (наследниками) класса Object, то для них предусмотрена соответствующая реализация этого метода. Следовательно, метод ToString можно использовать, когда любое арифметическое значение надо преобразовать в строку.  Например:

string s; int n = 2010; s = "Год "+ToString(n);

Достаточно часто требуется обратное преобразование – строку в число. Для таких преобразований предусмотрен специальный класс методов – класс Convert, встроенный в пространство имен System. Этот класс содержит 15 статических методов вида To(ToBoolean, … ТоInt64), где Type может принимать значения от Boolean до UInt64 (см. таблицу встроенных типов). Единственным исключением является тип Object, - метода ToObject нет по понятным причинам, поскольку для всех типов существует неявное преобразование к типу Object.

Существует возможность преобразования строки к системному типу DateTime, который хотя и не является встроенным типом языка C#, но допустим в программах, как и любой другой системный тип. Пример работы с этим типом:

System.DateTime dat = Convert.ToDateTime("15.03.2003"); Console.WriteLine("Date = {0}", dat);

Результатом вывода будет строка: Date = 15.03.2003 0:00:00

Кроме методов, задающих преобразования типов, в классе Convert имеются и другие методы, например, задающие преобразования символов Unicode в однобайтную кодировку ASCII, преобразования значений объектов и другие методы. Подробности можно посмотреть в справочной системе. В дальнейшем это будет более подробно разобрано на нашем сайте в моих следующих статьях.

8) Понятие исключения:

Как показывает практика программирования, в процессе работы программы могут возникнуть какие-либо неполадки, связанные, например, с некорректными данными. В языке C# такие ситуации обрабатываются с помощью исключений. Говорят, что если операция или метод не может выполниться корректно, то выбрасываются исключения соответствующего типа. Выражение «выбрасываются» надо понимать не буквально, а в том смысле, что при обнаружении ошибки система прерывает выполнение программы и сообщает об этом. Например, если при делении делитель оказался равен нулю, то программа будет прервана с признаком «деление на нуль». А если при попытке преобразовать строку в число один из символов строки окажется не цифровым, то тоже будет прерывание программы, но уже с другим признаком. Это и есть выбрасывание исключений.

Исключения являются нормальным способом уведомления об ошибках в работе программы. Возможна стандартная обработка исключения, когда система просто информирует пользователя о случившейся неприятности и завершает выполнение программы. Однако, считается хорошим стилем, когда программист предусматривает возможность появления исключения и сам обеспечивает его обработку. Говорят, что программист «ловит» исключение, вставляя в текст программы соответствующий блок. Пример обработки исключения будет рассмотрен в одной из моих ближайших статей.

В состав библиотеки FCL (Free Class Library, библиотека свободных классов – это объектно-ориентированная библиотека, нацеленная на работу с XML, веб-программирование, взаимодействие с базами данных, обработку изображений и др.) входит класс Exception, свойства и методы которого позволяют работать с исключениями. Свойства этого класса определяют виды исключений, которые задаются определёнными идентификаторами. Если в некотором блоке предполагается возможность появления исключений, то разумно заключить этот блок в фигурные скобки и предварить ключевым словом try. Вслед за этим блоком можно расположить один или несколько блоков, обрабатывающих исключения, – это так называемые catch-блоки. Каждый catch-блок имеет формальный параметр, определяющий, какое именно исключение будет обработано в этом блоке. Если в try-блоке возникает исключение, то catch-блоки начинают конкурировать в борьбе за перехват исключения. Обрабатывает исключение тот блок, параметр которого соответствует исключению. Ну, а чтобы исключение было правильно обработано, программист должен разместить в блоке необходимые операторы.

(Тупо скопировала =) но, вроде, всё понятно =)))