如何在没有任何ID的情况下在类中强制GetHashCode
这个问题在这里已经有了答案:
您应该将您的对象的哈希码计算基于不可变字段,如果您可以使Person
的FirstName和LastName字段不可变,则可以使用基于Josh Bloch建议的以下模式:
public override int GetHashCode()
{
int hash = 17;
hash = hash * 31 + FirstName.GetHashCode();
hash = hash * 31 + LastName.GetHashCode();
return hash;
}
public override int GetHashCode()
{
return String.Concat(FirstName, LastName).GetHashCode();
}
你可以做这样的事情:
public override int GetHashCode()
{
return FirstName.GetHashCode() ^ LastName.GetHashCode()
}
检查这个更多
链接地址: http://www.djcxy.com/p/39777.html