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