有效的C#:覆盖Object.Equals(),不管是不是?

Nic*_*son 4 c# overriding equals

在第37页的Effective C#第二版(ISBN-13:978-0321658708)中,本书内容如下

你永远不会重新定义的第二个函数是静态Object.Equals()

但是,在第39页,这本书上写着

关键是如果你的类型应该遵循值语义(比较内容)而不是引用语义(比较对象标识),你应该编写自己的实例Object.Equals()的覆盖

有人会如此善意地解释为什么会覆盖

public virtual bool Equals(object right);
Run Code Online (Sandbox Code Playgroud)

并不是

public static bool Equals(object left, object right);
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

Ste*_*ven 8

因为您无法覆盖静态方法.