在.NET GetHashCode
方法中,很多地方都使用.NET 方法.特别是在快速查找集合中的项目或确定相等性时.是否有关于如何GetHashCode
为我的自定义类实现覆盖的标准算法/最佳实践,因此我不会降低性能?
鉴于以下课程
public class Foo
{
public int FooId { get; set; }
public string FooName { get; set; }
public override bool Equals(object obj)
{
Foo fooItem = obj as Foo;
if (fooItem == null)
{
return false;
}
return fooItem.FooId == this.FooId;
}
public override int GetHashCode()
{
// Which is preferred?
return base.GetHashCode();
//return this.FooId.GetHashCode();
}
}
Run Code Online (Sandbox Code Playgroud)
我已经覆盖了该Equals
方法,因为它Foo
代表了Foo
s表的一行.哪个是覆盖的首选方法GetHashCode
?
覆盖为什么重要GetHashCode
?