Nullable 형식 사용하기 (int?가 멀까)

2008. 11. 13. 14:20 개발언어/C#.NET
Nullable 형식 사용하기 (int?가 멀까)



int? 이건 멀까?


msdn에 자세히 나온다.
http://msdn.microsoft.com/ko-kr/library/2cf62fcy(VS.80).aspx


간략하게 정리하면

nullable 형식은 다음과 같은 두 가지 방법 중 하나로 선언됩니다.

System.Nullable<T> variable

- 또는 -

T? variable

로 나타낼수있다.
int? 는 후자의 경우겠죠 ㅋㅋ

함수명(int? height, int? width)
뭐 이렇게 쓴다.

그리고 왜쓰는 지는  null값을 추가로 나타낼수있기 때문이다.
(인용)
nullable 형식을 사용하면 내부 형식의 값을 모두 나타낼 수 있을 뿐만 아니라 null 값을 추가로 나타낼 수 있습니다



명시적 변환

nullable 형식은 Value 속성을 사용하거나 명시적으로 캐스팅하여 일반 형식으로 캐스팅할 수 있습니다. 예를 들면 다음과 같습니다.

int? n = null;

//int m1 = n;      // Will not compile.
int m2 = (int)n;   // Compiles, but will create an exception if x is null.
int m3 = n.Value;  // Compiles, but will create an exception if x is null.

두 데이터 형식 사이에 사용자 정의 변환이 정의되어 있는 경우에는 이러한 데이터 형식의 null 허용 버전에 대해서도 동일한 변환을 사용할 수 있습니다.

nullable 형식의 변수는 다음과 같이 null 키워드를 사용하여 null로 설정할 수 있습니다.

int? n1 = null;

일반 형식에서 nullable 형식으로의 변환은 암시적입니다.

int? n2;
n2 = 10;  // Implicit conversion.


nullable 형식의 예제

nullable 형식의 기준으로는 모든 값 형식을 사용할 수 있습니다. 예를 들면 다음과 같습니다.

int? i = 10;
double? d1 = 3.14;
bool? flag = null;
char? letter = 'a';
int?[] arr = new int?[10];