Null을 사용한 패턴 일치와 동일성 비교
C# 7에서는 새로운 패턴 일치 연산자 "is"가 다음과 같이 도입되었습니다. 항등 연산자 "=="의 대안입니다. Null을 확인할 때 유사하게 동작하는 것처럼 보일 수 있지만 몇 가지 미묘한 차이점이 있습니다.
의미적 차이:
-
Null의 경우: "is null"과 "== null"을 사용하면 동일합니다. effect.
-
패턴 일치: null이 아닌 리터럴 또는 상수 값과 함께 사용되는 경우 "is"는 유형 호환성 및 패턴 일치를 확인합니다. 예를 들어, "if (x is 1)"은 "x"가 int 유형이고 값이 1인지 확인합니다.
구현 세부 정보:
-
"is null": 다음 호출로 컴파일합니다. System.Object.Equals(object, object).
-
"== null": 동등성 검사를 수행하는 ceq 명령어에 대한 호출로 컴파일합니다.
성능:
이전 버전의 Roslyn에서는 컴파일러에서 "is null"은 추가 유형 및 패턴 일치 검사로 인해 "== null"에 비해 약간의 성능 저하가 발생했습니다. 그러나 최신 버전에서는 동작이 최적화되었으며 오버로드된 항등 연산자가 없을 때 두 연산자 모두 비슷한 성능을 발휘합니다.
사용 권장 사항:
- "를 사용하세요. null과 유형 검사를 모두 수행하려는 경우 is null"입니다.
- 간단한 동일성을 위해서는 "== null"을 사용하세요. 특히 성능이 중요한 경우 검사합니다.
- 상수 또는 리터럴의 유형과 값을 확인하는 등 더 복잡한 시나리오의 경우 패턴 일치와 함께 "is"를 사용하는 것이 좋습니다.
위 내용은 `C#에서 Null을 검사하는 데 'is null' 또는 '== null'이 더 나은가요?`의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!