집 >백엔드 개발 >C#.Net 튜토리얼 >C#의 어려움은 하나씩 해결됩니다(8): Nullable 형식 System.Nullable
null 및 void
null 값은 데이터 유형에 값이 할당되지 않았음을 나타내는 데 사용됩니다. void는 유형이 없음을 나타냅니다. 가치가 없습니다. null과 void의 차이점은 void는 아무것도 아닌 반면 null은 아무것도 없는 빈 상자라고 생각하면 됩니다.
Null 값은 참조 유형에만 할당될 수 있습니다. 여기서 문자열은 참조 유형이기도 하며 C에서는 변수 위치가 있는 메모리 공간 위치입니다. 저장됩니다. 변수를 null로 설정하면 참조가 명시적으로 설정되며 메모리 위치 자체를 가리키지 않습니다.
값 유형에 null 값을 할당하면 컴파일 오류가 발생합니다.
void는 메서드 값을 반환하는 데 사용됩니다. 그 본질은 데이터 유형이 없음을 나타내는 데 사용됩니다.
System.Nullable
C#의 null 값은 값 유형에 할당할 수 없으며 여기서 값 유형에는 구조체가 포함됩니다. 그 이유는 값 유형이 참조를 포함할 수 없기 때문입니다. 물론 "없음" 참조인 null은 값 유형에서 참조할 수 없습니다. 실제 응용 프로그램에서는 int 데이터 유형이 실제로 해당 값을 결정할 수 없는 경우 몇 가지 문제가 발생합니다. 여기서는 nullable 유형을 사용해야 합니다.
System.Nullable<int> i = null; Console.WriteLine(i);
이때 int 유형인 i를 null 유형으로 선언할 수 있습니다. 동시에 프로그램 실행 결과에는 데이터가 표시되지 않습니다. 이때 int 유형은 null 유형으로 선언할 수 있으며, 프로그램 실행 결과에는 GetType을 사용하여 데이터가 표시되지 않습니다. () 해당 유형을 보려면 System.NullReferenceException
System.Nullable<int> i = null; Console.WriteLine(i);
System.Nullable
또한 Nullable 유형의 인스턴스에는 HasValue 멤버와 Value 멤버가 있습니다. 여기서 HasValue는 인스턴스에 값이 있는지 여부를 나타내는 부울 유형이고, Value는 HasValue에 값이 있을 때 인스턴스의 값을 나타냅니다. HasVaue가 false인 경우 Value를 사용하면 System.InvalidOperationException 예외가 트리거됩니다.
System.Nullable<int> i = null; Console.WriteLine( i.GetType());
위 내용은 C#의 어려움을 하나씩 설명합니다(8): nullable 유형 System.Nullable에 대한 자세한 내용은 다음을 참조하세요. PHP 중국어 홈페이지(www.php .cn)!
int? i = null; Console.WriteLine(i.HasValue); Console.WriteLine(i.Value);