Checked 및 Unchecked(C# 참조)Checked and Unchecked (C# Reference)

checked 컨텍스트 또는 unchecked 컨텍스트에서 C# 문을 실행할 수 있습니다.C# statements can execute in either checked or unchecked context. checked 컨텍스트에서는 산술 오버플로가 있으면 예외가 발생합니다.In a checked context, arithmetic overflow raises an exception. unchecked 컨텍스트에서는 산술 오버플로가 무시되고 대상 형식에 맞지 않는 상위 비트가 삭제되어 해당 결과가 잘립니다.In an unchecked context, arithmetic overflow is ignored and the result is truncated by discarding any high-order bits that don't fit in the destination type.

  • checked checked 컨텍스트를 지정합니다.checked Specify checked context.

  • unchecked unchecked 컨텍스트를 지정합니다.unchecked Specify unchecked context.

오버플로 검사의 영향을 받는 작업은 다음과 같습니다.The following operations are affected by the overflow checking:

  • 정수 계열 형식에 다음의 미리 정의된 연산자를 사용하는 식Expressions using the following predefined operators on integral types:

    ++, --, -(단항), +, -, *, /++, --, unary -, +, -, *, /

  • 정수 형식 간이나 float 또는 double에서 정수 형식으로의 명시적 숫자 변환Explicit numeric conversions between integral types, or from float or double to an integral type.

checkedunchecked도 지정하지 않으면 상수가 아닌 식(런타임에 계산되는 식)의 기본 컨텍스트는 -checked 컴파일러 옵션의 값으로 정의됩니다.If neither checked nor unchecked is specified, the default context for non-constant expressions (expressions that are evaluated at run time) is defined by the value of the -checked compiler option. 기본적으로 이 옵션의 값은 설정되지 않으며 unchecked 컨텍스트에서 산술 연산이 실행됩니다.By default the value of that option is unset and arithmetic operations are executed in an unchecked context.

상수 식(컴파일 시간에 완전히 계산될 수 있는 식)의 경우 기본 컨텍스트는 항상 checked입니다.For constant expressions (expressions that can be fully evaluated at compile time), the default context is always checked. 상수 식이 unchecked 컨텍스트에 명시적으로 배치되지 않는 경우 식에 대한 컴파일 시간 계산 중 발생하는 오버플로로 인해 컴파일 시간 오류가 발생합니다.Unless a constant expression is explicitly placed in an unchecked context, overflows that occur during the compile-time evaluation of the expression cause compile-time errors.

참고 항목See also