>백엔드 개발 >C++ >`x is null`과 C#의 `x == null`: 언제 어느 것을 사용해야 합니까?

`x is null`과 C#의 `x == null`: 언제 어느 것을 사용해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2025-01-03 21:19:08778검색

`x is null` vs. `x == null` in C#: When Should You Use Which?

x is null 대 x == null

C#에서 ==를 사용하여 개체를 null과 비교하는 것과 is는 전통적으로 유사했습니다. 그러나 C# 7에서는 새로운 연산자인 is null을 도입하여 다음과 같은 질문을 제기합니다. 기존의 == null에 비해 이를 사용하면 어떤 이점이 있습니까?

의미

일반적인 믿음과는 달리 x == null과 x is null의 의미는 동일하지 않습니다. 둘 다 객체를 null과 비교하지만 null이 아닌 상수와 비교할 때 동작이 다릅니다.

is null의 장점

is null의 한 가지 장점은 해당 기능입니다. 비교하는 동안 객체의 유형을 고려합니다. 예를 들면 다음과 같습니다.

Test(1);

void Test(object o)
{
    if (o is 1)
        Console.WriteLine("a");
    else
        Console.WriteLine("b");
}

이 예에서 is 연산자를 사용하면 해당 유형을 고려하여 o를 상수 1과 비교할 수 있습니다.

사용 시기는 null입니다.

일반적으로 x is null은 null이 아닌 상수를 처리할 때, 특히 유형을 고려할 때 더 이상하지 않습니다. null만 포함하는 비교의 경우 == null과 is null은 모두 동일한 용도로 사용됩니다.

== null을 사용해야 하는 경우

== null은 여전히 ​​신뢰할 수 있는 선택입니다. null을 포함하는 비교. 객체 유형을 고려할 필요가 없는 경우 == null이 일반적으로 사용됩니다.

업데이트

Roslyn 컴파일러는 == 및 오버로드된 같음 연산자가 없는 시나리오에서는 null입니다. 결과적으로 둘 다 이제 더 효율적인 == 동작에 맞게 최적화됩니다. 그러나 오버로드된 항등 연산자가 있는 경우에는 null이고 == null의 동작이 다릅니다.

위 내용은 `x is null`과 C#의 `x == null`: 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.