C\#입문 checked 와 unchecked 의 차이 인 스 턴 스 분석
int 유형의 최대 치 는 2147483647 이 고 2 개의 최대 치 를 더 하면 int 의 최대 치 를 초과 합 니 다.즉,넘 침 이 발생 합 니 다.
class Program
{
static void Main(string[] args)
{
int y = 2147483647;
int x = 2147483647;
int z = x + y;
Console.WriteLine(z.ToString());
Console.ReadKey();
}
}
정지점 을 int z=x+y 에 맞 추기;코드 줄,단일 디 버 깅,z 의 값 이-2 인 것 을 볼 수 있 습 니 다.int 유형의 최대 치 는 2147483647 이 고 x+y 가 최대 치 를 초과 하여 넘 쳤 기 때문이다.프로그램 실행 효 과 는 다음 그림 과 같 습 니 다.
1.checked 사용:
만약 우리 가 컴 파일 러 에 게 넘 치 는 지 여 부 를 판단 하 게 하려 면 checked 키 워드 를 사용 하 십시오.
class Program
{
static void Main(string[] args)
{
int y = 2147483647;
int x = 2147483647;
int z = checked(x + y);
}
}
실행 후 넘 침 이상 을 던 집 니 다.실행 결 과 는 다음 그림 과 같 습 니 다.만약 우리 가 수 동 으로 이상 을 포착 하고 인쇄 하려 면 이렇게 써 야 합 니 다.
class Program
{
static void Main(string[] args)
{
int y = 2147483647;
int x = 2147483647;
try
{
int z = checked(x + y);
}
catch (OverflowException ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadKey();
}
}
실행 결 과 는 다음 그림 과 같 습 니 다.2.unchecked 사용:
unchecked 를 사용 하면 넘 치 는 이상 을 던 지지 않 습 니 다.
class Program
{
static void Main(string[] args)
{
int y = 2147483647;
int x = 2147483647;
int z = unchecked(x + y);
Console.WriteLine(z.ToString());
Console.ReadKey();
}
}
결과:-2
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.