C#은 null 값뿐만 아니라 일반 범위의 값을 할당할 수 있는 특수 데이터 유형인 nullable 유형을 제공합니다.
C# 2.0에는 값 형식 변수에 null을 할당할 수 있는 nullable 형식이 도입되었습니다. T가 유형인 경우 Nullable을 사용하여 nullable 유형을 선언할 수 있습니다.
-
Nullable 유형은 값 유형에만 사용할 수 있습니다.
-
Value 속성은 값이 null인 경우 InvalidOperationException을 발생시킵니다. 그렇지 않으면 값을 반환합니다.
-
HasValue 속성은 변수에 값이 포함되어 있으면 true를 반환하고 null이면 false를 반환합니다.
-
nullable 형식에는 ==및 !=연산자만 사용할 수 있습니다. 다른 비교를 위해 Nullable 정적 클래스를 사용하십시오.
-
중첩된 nullable 형식은 허용되지 않습니다. Nullable
> i; 컴파일 시간 오류가 발생합니다.
예시 1
static class Program{ static void Main(string[] args){ string s = "123"; System.Console.WriteLine(s.ToNullableInt()); Console.ReadLine(); } static int? ToNullableInt(this string s){ int i; if (int.TryParse(s, out i)) return i; return null; } }
출력
123
Null이 확장 메서드에 전달되면 값이 인쇄되지 않습니다.
static class Program{ static void Main(string[] args){ string s = null; System.Console.WriteLine(s.ToNullableInt()); Console.ReadLine(); } static int? ToNullableInt(this string s){ int i; if (int.TryParse(s, out i)) return i; return null; } }