C\#입문 checked 와 unchecked 의 차이 인 스 턴 스 분석

2160 단어 C#checkedunchecked
본 고 는 사례 형식 으로 C\#에서 checked 와 unchecked 의 차 이 를 비교 테스트 하여 C\#초보 자 에 게 참고 가치 가 있 습 니 다.구체 적 인 분석 은 다음 과 같다.
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

좋은 웹페이지 즐겨찾기