C#에서는 기본적으로 상수 표현식의 값이 대상 유형의 최대값을 초과하면 컴파일 오류가 발생합니다.
대상 데이터 유형이 상수가 아닌 표현식의 데이터를 수용할 수 없는 경우 할당 중에 데이터가 잘립니다.
class Program { static void Main(string[] args) { int n = int.MaxValue;//n=2147483647 n = n + 1; System.Console.WriteLine(n); } }
이전에는 메모리 저장 데이터로 설명할 수 있습니다. 이전에는 메모리에 1을 추가한 후 int.MaxValue가 32비트였습니다. 32비트 0이 됩니다. 0이 음수 부호로 간주되면 -2147483648을 얻습니다.
위 코드를 확인된 블록에 배치하면 System.OverflowException 유형이 발생합니다.
class Program { static void Main(string[] args) { checked { int m = int.MaxValue; m = m + 1; System.Console.WriteLine(m); } } }
C#의 확인된 블록에 있는 변수는 런타임 중에 오버플로 할당이 발생하는 경우 예외를 발생시킵니다.
unchecked는 정수 산술 연산 및 변환의 오버플로 검사를 취소하는 데 사용됩니다.
위 내용은 C# 난이도를 하나씩(7) 체크한 내용과 체크하지 않은 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!