2010-05-15 14 views
0

lecture un morceau de code et je continue à voir ceci:surcharge Est-ce que c'est faux?

public override bool Equals (object obj) 
{ 
    if (obj == null || this.GetType().Equals (obj.GetType())) return false; 
    //compare code... 
} 

Ça ne devrait pas être comme ça (notez le!):

public override bool Equals (object obj) 
{ 
    if (obj == null || !this.GetType().Equals (obj.GetType())) return false; 
    //compare code... 
} 

Ou le égaux se comportent différemment dans ce cas?

Répondre

2

Cela ressemble à un bug. Renvoyer false lorsque les types sont identiques n'est certainement pas le comportement voulu.