C# 값 유형 및 Null 비교
C#에서는 값 유형을 null에 할당할 수 없습니다. 이는 값 유형이 스택에 저장되고 스택이 Null 참조를 허용하지 않기 때문입니다. 그러나 같음 연산자(==) 또는 같지 않음 연산자(!=)를 사용하여 값 형식을 null과 비교할 수 있습니다.
다음 코드를 고려하세요.
<code class="language-csharp">int x = 1; if (x == null) { Console.WriteLine("What the?"); }</code>
이 코드는 int 값이 null일 수 없더라도 컴파일 시간 오류를 발생시키지 않습니다. 이는 값 형식을 null 허용 값 형식과 비교할 수 있도록 같음 연산자가 오버로드되기 때문입니다. Null 허용 값 형식은 기본 형식 또는 Null의 값을 포함할 수 있는 래퍼입니다.
이 경우 int 값 x는 암시적으로 null 허용 int로 변환된 다음 null 리터럴과 비교됩니다. 비교는 항상 거짓이므로 "What the?" 메시지는 인쇄되지 않습니다.
그러나 값 유형에 null 값을 할당하려고 하면 다음과 같은 컴파일 시간 오류가 발생합니다.
<code class="language-csharp">int x = null; // Error CS0037: Cannot convert null to 'int' because it is a non-nullable value type</code>
그 이유는 null에서 null을 허용하지 않는 값 유형으로의 암시적 변환이 없기 때문입니다.
요약하자면, 같음 또는 같지 않음 연산자를 사용하여 값 유형을 null과 비교할 수 있습니다. 그러나 null 값을 할당할 수는 없습니다. 이 동작을 통해 값 유형의 무결성을 유지하면서 코딩의 유연성을 얻을 수 있습니다.
위 내용은 C#의 값 유형을 Null과 비교할 수 있습니까? 그렇다면 어떻게 비교합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!