C#のクラス用に独自のGetHashCodeメソッドを作成するための最良の方法は何ですか?次のような単純なクラス(Equalsメソッドをオーバーライドする)があるとします。
class Test
{
public string[] names;
public double[] values;
public override bool Equals(object obj)
{
return (obj is Test) && this.Equals((Test)obj);
}
public bool Equals(Test t)
{
return names.Equals(t.names) && values.Equals(t.values);
}
}
GetHashCodeメソッドにデフォルトのコードを使用する必要がありますか?
public override int GetHashCode()
{
return base.GetHashCode();
}
クラスの内容に基づいてメソッドを作成する必要がありますか?
public override int GetHashCode()
{
return names.GetHashCode() + values.GetHashCode() ;
}
それとも私は何か他のことをすべきですか?