2012-10-02 2 views
2

나는 나의 C# 코드 (asp.net 코드 뒤에)에 이상한 행동이있다.C# 이상한 결과 비교 작업

strange null comparation result

내가 널 객체 사용자가 (당신이 볼 수있는)과 비교 : 사용자는 == 널 (null)는 false를 반환 여기 시계 화면의 스크린 샷을 게시 할 수 있습니다. 왜 그런지 모르겠다!

왜 이런 일이 발생했는지 설명 할 수있는 사람이 있습니까?

+1

당신이 user.ToString()''에 시계를 추가 할 수 있습니까? 또한 선언 된 'user' 유형의 코드에 액세스 할 수 있습니까? – StriplingWarrior

+1

null == 사용자를 사용해 보셨습니까? –

+1

사용자에게 == 연산자를 오버로드 했습니까? http://stackoverflow.com/questions/155458/c-sharp-object-is-not-null-but-myobject-null-still-return-false –

답변

12

그럼 당신은 쉽게 그 결과를 줄 것이다 자신의 클래스를 쓸 수있다 : 우리는 순간에, 추측하고

public class Evil 
{ 
    public static bool operator ==(Evil lhs, Evil rhs) 
    { 
     return false; 
    } 

    public static bool operator !=(Evil lhs, Evil rhs) 
    { 
     return false; 
    } 
} 

을 ...하지만 그 증상을 설명합니다.

(난 그냥 ToString을 무시 시도했다, 내가 원하는 출력을 얻을 수 없습니다.)

+1

질문에 대한 대답이 어떻게 대답하는지 잘 모르겠습니다. – Daniel

+0

@Daniel : 주어진 결과물을 보여줄 수있는 예입니다. –

+1

ToString() 구현에서'return null '가능성이 더 높다고 생각합니다. 'return "null"'은 따옴표가 디버거에 표시되도록합니다. – Douglas