C# 2.0 Nullable Value Type

C# 2.0의 CLR에 통합된 Nullable Value Type을 지원한다.
이미 알다 시피 Strongly-Typed Language인 C#에서 Value Type에 Null을 대입할 수는 없다.
Int32 a = null;
대입을 하게 되면 컴파일시에 “오류 CS0037: null을 허용하지 않는 값 형식이므로 null을 변환할 수 없습니다.”를 발생하게 된다.
Reference Type에는 당연히 Null이 허용된다.
object o = null;
그럼 Value Type에는 null을 대입하지 않으면 되는거 아닌가?
현실의 문제점은 데이터베이스가 nullable을 허용하고, 데이터베이스로 부터 가져온 null을 CLR이 표현할 방법이 없다는데 있다.
또한 Java에서는 DateTime 이 Reference type 이지만, CLR은 ValueType으로써 웹서비스 등으로 자바로 부터 가져온 DateTime의 Null에 대해 대응 할 방법이 없다.
이 상황을 발전 시켜