Ответ 1
Вы можете использовать отмеченный блок, как уже указывалось другими ответами:
checked
{
long x = 11111111111;
long y = 11111111111;
long z = checked(x * y);
// ...
}
Это приводит к исключению:
OverflowException: арифметическая операция привела к переполнению.
Если вы просто выполняете одну операцию, где вам нужно проверить, вы можете вместо проверить выражение:
long x = 11111111111;
long y = 11111111111;
long z = checked(x * y);
Вы также можете установить параметр /checked компилятор, чтобы по умолчанию была проверена.
Чтобы установить этот параметр компилятора в среду разработки Visual Studio:
- Откройте диалоговое окно Свойства страницы. Подробнее см. Настройка свойств проекта Visual С#.
- Щелкните папку Свойства конфигурации.
- Перейдите на страницу свойств Создать.
- Измените свойство Проверить свойство арифметического переполнения/недогрузки.
Если вы измените установленный по умолчанию флажок, вы можете использовать непроверенные блоки или выражения, чтобы снова получить неконтролируемое поведение.