Следует особо подчеркнуть, что для каждого преобразуемого значения необходимо выбирать подходящий метод синтаксического анализа. Так, если попытаться преобразовать строку, содержащую значение с плавающей точкой, методомInt32 . Parse (), то искомый результат, т.е. числовое значение с плавающей точкой, получить не удастся.
Как пояснялось выше, при неудачном исходе преобразования методParse() сгенерирует исключение. Для того чтобы избежать генерирования исключений при преобразовании числовых строк, можно воспользоваться методомTryParse (), определенным для всех числовых структур. В качестве примера ниже приведен один из вариантов методаTryParseO,определяемых в структуреInt 32:
static bool TryParse(strings,out intрезультат)
гдеsобозначает числовую строку, передаваемую данному методу, который возвращает соответствующийрезультатпосле преобразования с учетом выбираемой по умолчанию местной специфики представления чисел. (Конкретную местную специфику представления чисел с учетом региональных стандартов можно указать в другом варианте данного метода.) При неудачном исходе преобразования, например, когда параметрsне содержит числовую строку в надлежащей форме, методTryParse() возвращает логическое значениеfalse.В противном случае он возвращает логическое значениеtrue.Следовательно, значение, возвращаемое этим методом, обязательно следует проверить, чтобы убедиться в удачном (или неудачном) исходе преобразования.
ГЛАВА 15 Делегаты, события и лямбда-выражения
В этой главе рассматриваются три новых средства С#: делегаты, события и лямбда-выражения.Делегатпредоставляет возможность инкапсулировать метод, асобытиеуведомляет о том, что произошло некоторое действие. Делегаты и события тесно связаны друг с другом, поскольку событие основывается на делегате. Оба средства расширяют круг прикладных задача, решаемых при программировании на С#. Алямбда-выражениепредставляет собой новое синтаксическое средство, обеспечивающее упрощенный, но в то же время эффективный способ определения того, что по сути является единицей исполняемого кода. Лямбда-выражения обычно служат для работы с делегатами и событиями, поскольку делегат может ссылаться на лямбда-выражение. (Кроме того, лямбда-выражения очень важны для языка LINQ, описываемого в главе 19.) В данной главе рассматриваются также анонимные методы, ковариантность, контравариантность и групповые преобразования методов.
Делегаты