> 백엔드 개발 > C++ > C#의 값 유형을 Null과 비교할 수 있습니까? 그렇다면 어떻게 비교합니까?

C#의 값 유형을 Null과 비교할 수 있습니까? 그렇다면 어떻게 비교합니까?

Patricia Arquette
풀어 주다: 2025-01-16 18:20:45
원래의
554명이 탐색했습니다.

Can Value Types in C# Be Compared to Null, and If So, How?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿