重複の可能性:
C#でEqualsメソッドをオーバーライドするときにGetHashCodeをオーバーライドすることが重要なのはなぜですか?
私は自分の中で次のクラスを調べていましたが、Object Model
を追加することの重要性を理解できませんでしGetHashCode()
たClass
。
サンプルクラス
public class SampleClass
{
public int ID { get; set; }
public String Name { get; set; }
public String SSN_Number { get; set; }
public override bool Equals(Object obj)
{
if (obj == null || GetType() != obj.GetType())
return false;
SampleClass cls = (SampleClass)obj;
return (ID == cls.ID) &&
(Name == cls.Name) &&
(SSN_Number == cls.SSN_Number);
}
public override int GetHashCode()
{
return ID.GetHashCode() ^ Name.GetHashCode() ^ SSN_Number.GetHashCode();
}
}
オブジェクトのリストがありSample Class
、特定のインデックスを取得したいとします。その後Equals()
、私がその記録を取得するのを助けることができます。なぜ使用する必要がありますGetHashCode()
か?