Основы языка C# 2005. Евсеева О.Н - 45 стр.

UptoLike

Составители: 

49
Методы класса Convert поддерживают общий способ выполнения
преобразований между типами. Класс Convert содержит 15 статических методов
вида To <Type> (ToBoolean(),...ToUInt64()), где Type может принимать значения от
Boolean до UInt64 для всех встроенных типов, перечисленных в таблице типов
данных.
Существует возможность преобразования к системному типу DateTime,
который хотя и не является встроенным типом языка C#, но допустим в
программах, как и любой другой системный тип. Приведем простейший пример
работы с этим типом:
// System type: DateTime
System.DateTime dat = Convert.ToDateTime("15.03.2003");
Console.WriteLine("Date = {0}", dat);
Результатом вывода будет строка:
Date = 15.03.2003 0:00:00
Все методы To <Type> класса Convert перегружены и каждый из них
имеет, как правило, более десятка реализаций с аргументами разного типа. Так
что фактически эти методы задают все возможные преобразования между
всеми встроенными типами языка C#.
Кроме методов, задающих преобразования типов, в классе Convert
имеются и другие методы, например, задающие преобразования символов
Unicode в однобайтную кодировку ASCII, преобразования значений объектов и
другие методы. Подробности можно посмотреть в справочной системе.
2.2.6. Проверяемые преобразования
При выполнении явных преобразований могут возникать нежелательные
явления, например, потеря точности. В языке C# имеются необходимые
средства для обнаружения ситуаций, когда такие явления все-таки возникают.
Язык C# позволяет создать проверяемый блок, в котором будет
осуществляться проверка результата вычисления арифметических выражений.
Если результат вычисления значения источника выходит за диапазон
возможных значений целевой переменной, то возникнет исключение
соответствующего типа. Если предусмотрена обработка исключения, то
дальнейшее зависит от обработчика исключения. В лучшем случае, программа
сможет продолжить корректное выполнение. В худшем она остановится и
выдаст информацию об ошибке. Отметим, что не произойдет самого опасного
продолжения работы программы с неверными данными.
Синтаксически проверяемый блок предваряется ключевым словом
checked. В теле такого блока арифметические преобразования проверяются на
допустимость, что требует дополнительных временных затрат. Если группа
операторов в теле такого блока нам кажется безопасной, то их можно выделить
в непроверяемый блок, используя ключевое слово unchecked. Заметим еще, что