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

Оператор unchecked

Контекст unchecked задают блоком или оборачивают выражение в unchecked(…). При переполнении старшие биты отбрасываются без исключения. Неконстантные целочисленные выражения по умолчанию уже выполняются как unchecked, а константные проверяются как checked на этапе компиляции.

Синтаксис

unchecked { выражения } unchecked(выражение)

Пример

Давайте сложим числа без проверки переполнения:

using System; class Program { static void Main() { int a = 100; int b = 23; int res = unchecked(a + b); Console.WriteLine(res); } }

Результат выполнения кода:

123

Пример

Давайте увидим переполнение у int.MaxValue:

using System; class Program { static void Main() { int num = int.MaxValue; int res = unchecked(num + 1); Console.WriteLine(res); } }

Результат выполнения кода:

-2147483648

Пример

Давайте сравним явный unchecked и обычное сложение:

using System; class Program { static void Main() { int num = int.MaxValue; int a = num + 1; int b = unchecked(num + 1); Console.WriteLine(a == b); } }

Результат выполнения кода:

True

Пример

Давайте умножим в блоке unchecked:

using System; class Program { static void Main() { int num = 100000; int res; unchecked { res = num * num; } Console.WriteLine(res); } }

Результат выполнения кода:

1410065408

Смотрите также

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