가능한 중복 :
C# okay with comparing value types to nullGUID를 == 널은 컴파일러에 의해 허용되지 않아야
에 고유후술하는 동작이 .NET 3.5 만
안녕하세요,
C# 컴파일러에서 가장 놀라운 동작을 보았습니다.
나는 다음과 같은 코드가 있습니다
Guid g1 = Guid.Empty;
bool b1= (g1 == null);
글쎄, GUID를 따라서는를 null로 같을 수 없다 널 입력이 가능하지 않습니다. 비교 제가 2 행에 있습니다. 은 항상 거짓을 반환합니다.
int x=0;
bool b2= (x==null);
내 질문은 : 를 컴파일러가 있습니다 않는 이유는 GUID를 비교하면 정수에 대해 같은 일을하면
는, 컴파일러는 결과가 항상 false가 될 것입니다 말하는 경고를 발행 null to?
내 지식에 따르면, 그것은 결과가 항상 거짓이라는 것을 이미 알고 있습니다.
컴파일러에서 null이 가능한 값이라고 가정하는 방식으로 기본 제공 변환이 수행됩니까?
여기에 누락 된 자료가 있습니까?
감사
중복 될 수 있음 : http://stackoverflow.com/questions/1972262/c-okay-with-comparing-value-types-to-null – BFree
실제로 복제본이 아닙니다. Luis의 질문은 구조체를 null과 비교할 때 컴파일러에서 경고를 표시하지 않는 이유와 값 유형을 비교할 때 오류가 발생하는 이유입니다. –
나는 이것이 중복되는 것에 동의하지 않는다 ... –