달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

checked+ 옵션

.NET 2005. 5. 24. 12:36

Professional C#  책 보다가..

 

자바 byte 는 -128 ~ 127 까지 나온다.

 

byte b = 0;

 

for(int i = 0; i < 130; i++){

    System.out.println(b++);

}

 

자바에서 이 코드는 127 이후의 연산은 -128, -127, -126 .. 이런식으로 계산 된다.

런타임에서도 체크가 안되고.. 값을 찍어봐야 한다. 짜증이쥐 -.-;

 

C# 에서는 checked 라는게 있다.

 

using System;

public class OverFlowCheck{
 public static void Main(){
  sbyte b = 0;
  

  for(int i = 0; i < 130; i++)
  { 
   checked
   {
    b++;
    Console.WriteLine("value : {0}" , b);
   }
  }
  
 }
}

 

이 코드는 실행시에 overflow 를 알려준다.

또는 checked{} 부분을 없애고..

컴파일 시에

csc /checked+ XXX.cs 라고 컴파일하고 실행하게 되면

다시 overflow 를 알려준다.

 

자바 byte 는 c# 의 sbyte 랑 같은거임 ...

 

편리한 기능이 너무너무 많음 ...

 

 

 

Posted by tornado
|