오버플로우를 컴파일 타임이나 런 타임에 확인하도록 하는 키워드
기본적으로 컴파일 타임에 확인이 되도록 되어있고
런타임 체크에서 checked로 되어 있으면 검사하고 unchecked로 되어 있으며 하지 않도록 되는 듯.
|
checked도 unchecked도 지정하지 않으면 상수가 아닌 식(런타임에 계산되는 식)의 기본 컨텍스트는 -checked 컴파일러 옵션의 값으로 정의됩니다. 기본적으로 이 옵션의 값은 설정되지 않으며 unchecked 컨텍스트에서 산술 연산이 실행됩니다. 상수 식(컴파일 시간에 완전히 계산될 수 있는 식)의 경우 기본 컨텍스트는 항상 checked입니다. 상수 식이 unchecked 컨텍스트에 명시적으로 배치되지 않는 경우 식에 대한 컴파일 시간 계산 중 발생하는 오버플로로 인해 컴파일 시간 오류가 발생합니다. |
[링크 : https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/checked-and-unchecked]
[링크 : https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/checked]
|
unchecked 환경을 제거하면 컴파일 오류가 발생합니다. 식의 모든 항이 상수이기 때문에 컴파일 시간에 오버플로가 검색될 수 있습니다. 상수가 아닌 항을 포함하는 식은 컴파일 시간 및 런타임에 기본적으로 확인되지 않습니다. checked 환경을 사용하도록 설정하는 방법에 대한 자세한 내용은 checked를 참조하세요. 오버플로를 확인하는 데 시간이 걸리기 때문에 오버플로 위험이 없는 상황에서는 unchecked 코드를 사용하여 성능을 향상할 수 있습니다. 그러나 오버플로가 발생할 가능성이 있는 경우 checked 환경을 사용해야 합니다. |
[링크 : https://docs.microsoft.com/ko-kr/dotnet/csharp/language-reference/keywords/unchecked]
'Programming > c# & winform' 카테고리의 다른 글
| c# 교과서 표준 입출력 등 (0) | 2020.09.21 |
|---|---|
| c# 교과서 - 키워드 정리 (0) | 2020.09.21 |
| c#(mono) on ubuntu (0) | 2020.09.21 |
| c# 변수형 (0) | 2020.09.18 |
| c# 에서 hex string을 숫자로 변환하기 (0) | 2020.09.15 |
