
Если требуется указать, что выражение будет проверяться на переполнение, следует использовать ключевое слово checked, а если требуется проигнорировать переполнение — ключевое слово unchecked. В последнем случае результат усекается, чтобы не выйти за пределы диапазона представления чисел для целевого типа выражения.
У ключевого слова checked имеются две общие формы: в первой проверяется конкретное выражение (операторная), а во второй проверяется блок операторов (блочная). Пример использования ключевого слова checked:
checked (выражение)
checked {
// проверяемые операторы
}
где выражение обозначает проверяемое выражение. Если вычисление проверяемого выражения приводит к переполнению, то генерируется исключение OverflowException.
Ключевое слово unchecked также имеет две общие формы: в первой переполнение игнорируется при вычислении конкретного выражения (операторная), а во второй оно игнорируется при выполнении блока операторов (блочная). Пример:
unchecked (выражение)
unchecked {
// операторы, для которых переполнение игнорируется
}
где выражение обозначает конкретное выражение, при вычислении которого переполнение игнорируется. Если в непроверяемом выражении происходит переполнение, то результат его вычисления усекается.