2011-08-18 16 views
0

가능한 중복 :
C# okay with comparing value types to null이상한 행동

이유 치형 날짜 시간과 그 항등 연산자 널 값과 비교 될 수 과부하 진수는?

나는 항상 값 형식이 아닌 nullables 값이다 생각하지만, 나는 다음과 같은 코드를 쓸 수있어 :

DateTime dateTime = DateTime(); 

if(dateTime == null) 
    //do something 

컴파일이 예외를 throw하지 않습니다, 그러나 비교가 항상 false입니다.

미리 감사드립니다.

답변

0

양쪽에서 사용 가능한 DateTime?으로의 암시 적 변환이 있기 때문입니다. 그것은 (예를 들어, 그렇게하지 여기에)하지만 모든, 기본적으로, 일부가지 경우는 경고를 제공 에서 :(

적합하지 않습니다 코너 케이스의 비트입니다. 예를 들어

, int 사용 :

int x = 5; 

if(x == null) 
{ 
    Console.WriteLine(); 
} 

당신은이 경고를 얻을 것이다 :

경고 CS0472 : 식의 결과는 항상 형의 값 이후 '거짓'입니다 'int'는 'int'유형의 'null'과 결코 같지 않습니다.