Ключевое слово unchecked

Ключевое слово unchecked

В предположении, что вы активизировали проверку переполнения для всего проекта, как разрешить игнорирование переполнений для тех блоков программного кода, где "молчаливая реакция" на переполнение вполне приемлема? Поскольку флаг /checked предполагает проверку всей арифметической логики, в языке C# предлагается ключевое слово unchecked, которое позволяет отключить генерирование System.OverflowException для конкретных случаев, Правила использования этого ключевого слова аналогичны правилам использования ключевого слова checked, и вы можете указать для него один оператор или блок операторов, например:

// Даже если флаг /checked активизирован,

// этот блок не генерирует исключения в среде выполнения.

unchecked {

 byte sum = (byte)(b1 + b2);

 Console.WriteLine(sum = {0}", sum);

}

Подводя итога обсуждения ключевых слов C# checked и unchecked, снова подчеркнем, что по умолчанию среда выполнения .NET игнорирует условии переполнения, возникающие при использовании арифметических операций. Если вы хотите селективно контролировать условия переполнения для отдельных операторов, используйте ключевое слово checked. Если нужно контролировать ошибки переполнения во всем приложении, укажите флаг /checked, Наконец, можно использовать ключевое слово unchecked, если у вас есть блок программного кода, для которого переполнение приемлемо (и поэтому оно не должно генерировать исключение в среде выполнения).

Исходный код. Проект CheckedUnchecked размещен в подкаталоге, соответствующем главе 9.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

Слово об оптимизации

Из книги Давайте создадим компилятор! автора Креншоу Джек

Слово об оптимизации Раннее в этой главе я обещал дать несколько подсказок как мы можем повысить качество генерируемого кода. Как я сказал, получение компактного кода не является главной целью этой книги. Но вам нужно по крайней мере знать, что мы не зря проводим свое


Ключевое слово static

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Ключевое слово static Как уже говорилось в этой главе, члены классов (и структур) в C# могут определяться с ключевым cловом static В этом случае соответствующий член должен вызываться непосредственно на уровне класса, а не экземпляра типа. Для иллюстрации рассмотрим "знакомый"


Хранение семейных тайн: ключевое слово protected

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

Хранение семейных тайн: ключевое слово protected Вы уже знаете, что открытые элементы непосредственно доступны отовсюду, а приватные элементы недоступны для объектов вне класса, определяющего эти элементы. Язык C#, занимающий лидирующие позиции среда многих других


Получение интерфейсных ссылок: ключевое слово as

Из книги Феномен науки. Кибернетический подход к эволюции автора Турчин Валентин Фёдорович

Получение интерфейсных ссылок: ключевое слово as Второй способ проверить поддержку интерфейса для данного типа предполагает использование ключевого слова as, о котором уже шла речь в главе 4. Если объект можно интерпретировать, как указанный интерфейс, будет возвращена


Получение интерфейсных ссылок: ключевое слово is

Из книги Scrum и XP: заметки с передовой автора Книберг Хенрик

Получение интерфейсных ссылок: ключевое слово is Можно также проверить реализацию интерфейса с помощью ключевого слова is. Если соответствующий объект не совместим указанным интерфейсом, будет возвращено значение false. А если тип совместим с интерфейсом, вы можете смело


Ключевое слово checked

Из книги Тайм-менеджмент для системных администраторов автора Лимончелли Томас

Ключевое слово checked Вы, несомненно, прекрасно знаете, что любой числовой тип данных имеет свои строго заданные верхний и нижний пределы (значения которых можно выяснить программными средствами с помощью свойств MaxValue и MinValue). При выполнении арифметических операций с


Ключевое слово sizeof

Из книги VBA для чайников автора Каммингс Стив

Ключевое слово sizeof В заключение обсуждения вопросов, связанных с небезопасным контекстом в C#, рассмотрим ключевое слово sizeof. Как и в C(++), ключевое слово C# sizeof используется для того, чтобы выяснить размер в байтах типа, характеризуемого значениями (но не ссылочного типа), и


Ключевое слово this

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

Ключевое слово this Ключевое слово this представляет собой указатель на текущий объект класса. Методы класса могут использовать ключевое слово this чтобы получить указатель на объект для которого вызван данный метод. Указатель this представляет собой постоянную величину, вы не


Заключительное слово

Из книги Linux и все, все, все... Статьи и колонки в LinuxFormat, 2006-2013 автора Федорчук Алексей Викторович

Заключительное слово Фух! Вот уж не ожидал, что это займёт столько времени.Надеюсь, эта книга навеяла вам несколько полезных идей, будь вы новичками или уже бывалыми специалистами.Поскольку Scrum всё равно необходимо подстраивать под каждую конкретную среду, спор по поводу


Вступительное слово

Из книги автора

Вступительное слово Письмо самому себе:Дорогой Я, (а как еще начать?)Не забудь модернизировать сервер LDAP. Не забудь поставить заплату на брешь в безопасности zlib и на каждый пакет, использующий эту библиотеку. (Впрочем, если задуматься, есть ли пакеты, которые ее не


Ключевое средство отладки: окно Watches

Из книги автора

Ключевое средство отладки: окно Watches Когда вы освоите работу с окном Locals, работа с окном Watches (Окно контролируемых выражений) покажется просто забавой. Окно Watches делает, по сути, то же самое, что и окно Locals, но с одним очевидным отличием - те выражения, значения которых будут


КЛЮЧЕВОЕ СЛОВО return

Из книги автора

КЛЮЧЕВОЕ СЛОВО return      Принципы программирования на языке Си основаны на понятии функции. В представленных ранее примерах программирования мы уже воспользовались несколькими функциями: printf( ), scanf( ), getchar( ), putchar( ) и strlen( ). Эти функции являются системными, однако мы