EqualsおよびGetHashCodeメソッドをオーバーライドする必要があるクラスPersonがあります。名前が一致する場合、または電子メールが一致する場合、2人のオブジェクトは等しくなります。かなり効率的なハッシュ関数でこれを行う良い方法は何ですか?
class Person
{
string Name
string Email
public override Equals(object obj)
{
if (ReferenceEquals(obj, null))
return false;
if (ReferenceEquals(this, obj))
return true;
if (obj is Person)
{
Person person = (Person)obj;
return
(this.Name == person.Name)
|| (this.Email == person.Email);
}
return false;
}
public override GetHashCode()
{
// What's a good way to implement?
}
}