C#에서는 일반적으로 값 유형(예: 정수)이 null일 수 없다고 생각되지만 실제로는 null 값과 비교할 수 있습니다. 다음 코드 조각에서 볼 수 있듯이 이 동작은 개발자에게 혼란을 줄 수 있습니다.
<code class="language-csharp">Int32 x = 1; if (x == null) { Console.WriteLine("What the?"); }</code>
이 코드는 x가 null이 될 수 없다는 우리의 예상과 모순됩니다. null은 설정되지 않은 값 개체를 나타내기 때문입니다. 그러나 컴파일러는 오류를 발생시키지 않으므로 이 비교의 타당성에 의문을 제기합니다.
C#에서 연산자를 해결하는 고유한 방식에 대한 설명이 있습니다. 이 경우 컴파일러는 적용될 수 있는 == 연산자의 두 가지 오버로드를 식별합니다.
x와 null은 모두 암시적으로 null 허용 정수로 변환될 수 있습니다(Nullable
이 동작은 값 유형을 다른 기본 유형과 비교할 수 있는 패턴과 일치합니다. 예를 들어 x == 12.6(여기서 x는 정수) 비교도 항상 false가 됩니다. 왜냐하면 정수 x는 묵시적으로 배정밀도 부동 소수점 숫자로 변환 가능하고 비교는 두 배정밀도 부동 소수점 숫자 사이에서 이루어지기 때문입니다. .
위 내용은 C#의 값 유형을 Null과 비교할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!