我读过一些关于重写Equal和GetHashcode的内容,但是当我拥有一个像下面这样简单的自己的Equal方法时,我需要它吗?我是否需要重写Equal?
如果我必须重写它:
这是为什么? - 重写GetHashCode()时,我应该使用Id.GetHashCode()吗?
public class Foo {
public Guid Id { get; } = new Guid();
public bool Equal(Foo other) {
if (other == null) return false;
return Id == other.Id;
}
}
@Muds但我上面的代码不覆盖等于?这只是一种新方法? – MrProgram
如果没有其他约定,那么您并不需要,但我没有看到重新发明轮子的理由,因为它不会与所有比较两个实例的默认实现结合使用。 – dryman