developer tip

.NET 참조 소스의 개체로 캐스팅

copycodes 2020. 11. 28. 09:40
반응형

.NET 참조 소스의 개체로 캐스팅


.NET 참조 소스 OperatingSystem.cs 파일을 살펴 보고이 코드를 50 행에 기록했습니다 .

if ((Object) version == null)

version클래스의 객체 인 Version의미 version에서 유래가 Object. 그렇다면 중복 캐스팅되지 Object않습니까? 이것과 같지 않습니까?

if (version == null)

아니요, 동일하지 않습니다 . 연산자에 Version과부하가 ==걸리기 때문 입니다.

왼쪽 피연산자를 캐스팅하는 스 니펫 Object은 다음과 같습니다.

if (Object.ReferenceEquals(version, null))

...에서 operator==구현을 호출하는 대신 Version. 어쨌든 첫 번째 조치로 nullity 검사를 할 가능성이 있지만 이것은 추가 수준을 우회합니다.

다른 경우에는 이것은 매우 중요한 차이를 만들 수 있습니다. 예를 들면 :

string original = "foo";
string other = new string(original.ToCharArray());
Console.WriteLine(original == other); // True
Console.WriteLine((object) original == other); // False

참고 URL : https://stackoverflow.com/questions/32736545/casting-to-object-in-net-reference-source

반응형