为什么默认 == 实现不调用 Equals?
运算符的默认实现按引用比较对象。因此,当您覆盖 Equals(其默认行为相同)时,还必须指定和运算符,以便它们调用 Equals(并在每类层次结构中将其设置为和运算符不是虚拟的)。==
==
!=
==
!=
我的问题是为什么会这样?为什么通过引用而不是使用 Equals 来比较对象?我想这样一件基本的事情应该有一个原因。==
!=
更新。
评论:我假设应该依赖于Equals(但反之亦然),因为您可以在基类中覆盖Equals并在派生类中自动使用此实现。如果在其实现中使用 Equals,则它不起作用,因为它不是虚拟的。==
==
==