Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
⊗csSpNuCk 211 of 509 menu
◀ ▶

checked и unchecked в C#

Блок checked бросает OverflowException при переполнении; блок unchecked оставляет младшие биты (wrap-around). По умолчанию арифметика в обычном коде - unchecked, если проект не включил глобальный checked.

К int.MaxValue прибавляется единица внутри блока checked. Такое значение не помещается в int, поэтому возникает OverflowException:

int x = int.MaxValue; try { checked { x = x + 1; } Console.WriteLine(x); } catch (OverflowException) { Console.WriteLine("overflow"); }

Покажите wrap-around в unchecked для MaxValue плюс один.

Оберните умножение больших int в checked и поймайте ошибку.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить