Подтвердить что ты не робот

Переполнение С# не работает? Как включить проверку переполнения?

Я работал с С# и заметил, что когда у меня было очень большое целое число и я попытался сделать его более крупным. Скорее, бросая некоторый тип ошибки переполнения, он просто устанавливает число до минимально возможного значения (-2,147,483,648). Я полагаю.

Мне было интересно, есть ли способ включить проверку переполнения в Visual Studio?

4b9b3361

Ответ 1

Вы можете использовать следующие шаги, чтобы включить проверку арифметических переполнений/переполнений в Visual Studio:

  • Щелкните правой кнопкой мыши на своем проекте в обозревателе решений и выберите "Свойства".
  • На вкладке "Создание" нажмите кнопку "Дополнительно". (Он внизу)
  • Установите флажок "Проверить арифметическое переполнение/недополнение".

Это вызовет System.OverflowException, когда произойдет переполнение, а не обычная операция изменения значения до минимального значения.

Без арифметического переполнения/недогрузки:

int test = int.MaxValue;
test++;
//Test should now be equal to -2,147,483,648 (int.MinValue)

С включенным арифметическим переполнением/недопущением:

int test = int.MaxValue;
test++;
//System.OverflowException thrown

Использование отмеченного блока:

checked
{
    int test = int.MaxValue;
    test++;
    //System.OverflowException thrown
}

Документация для отмеченного доступна здесь. (Спасибо Саше за то, что напомнили мне об этом.)