为什么Equals()和==设计不同?

时间:2015-05-23 12:29:45

标签: c#

此问题与==Equals之间的差异无关。这是关于为什么他们的设计不同。

我们知道差异会导致许多问题,这些问题一定很容易被发现:

  • Equals==会为同一实体的两个实例产生不同的结果。
  • ==在比较子类时产生不同的结果,因为==不是多态的

1 个答案:

答案 0 :(得分:3)

简短的回答是,C#语言设计团队和.NET框架设计团队无法就如何最好地比较值/对象的相同性达成一致,因此每个人都实现了自己的系统。

有关更具技术性的详细答案,请参阅a blog post on the subject by Eric Lippert