Поиск…


Синтаксис

  • checked (a + b) // проверено выражение
  • unchecked (a + b) // непроверенное выражение
  • checked {c = a + b; c + = 5; } // заблокирован блок
  • unchecked {c = a + b; c + = 5; } // unchecked block

Проверено и не отмечено

Операторы C # выполняются в любом проверенном или непроверенном контексте. В проверенном контексте арифметическое переполнение вызывает исключение. В неконтролируемом контексте арифметическое переполнение игнорируется, и результат усекается.

short m = 32767;   
short n = 32767;
int result1 =  checked((short)(m + n));   //will throw an OverflowException
int result2 =  unchecked((short)(m + n)); // will return -2

Если ни один из них не указан, контекст по умолчанию будет опираться на другие факторы, такие как параметры компилятора.

Проверено и не отмечено как область действия

Ключевые слова также могут создавать области для (un) проверки нескольких операций.

short m = 32767;
short n = 32767;
checked
{
    int result1 = (short)(m + n); //will throw an OverflowException
}
unchecked
{
    int result2 = (short)(m + n); // will return -2
}


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow