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

托马斯·爱德

这个问题与==之间的区别无关Equals这就是为什么它们的设计与众不同。

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

  • Equals==针对同一实体的两个实例产生不同的结果。
  • ==比较子类时会产生不同的结果,因为==它不是多态的
大卫·阿尔诺

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

有关更详细的技术答案,请参阅Eric Lippert撰写的有关该主题的博客文章

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Linq Orderby和与众不同

来自分类Dev

Linq Orderby和与众不同

来自分类Dev

为什么Netbeans设计人员将JFrame大小设置为与我指定的大小不同?

来自分类Dev

我需要什么,与众不同或分组?

来自分类Dev

为什么我的吐司看上去与众不同?

来自分类Dev

为什么我的.htaccess在Codeigniter中与众不同

来自分类Dev

硬盘和类型-是什么使它们与众不同?

来自分类Dev

Clojure:为什么字符串上的=和.equals具有不同的性能?

来自分类Dev

即使变量是引用类型,为什么Equals和ReferenceEquals方法的结果也不同?

来自分类Dev

是什么使裸机工具链与众不同?

来自分类Dev

是什么使某些命名函数/运算符与众不同?

来自分类Dev

是什么让Apple硬盘驱动器与众不同?

来自分类Dev

为什么将Symbol.iterator设计为Symbol类型?

来自分类Dev

作者为什么将localCacheBillingClient设计为lateinit?

来自分类Dev

MySQL与众不同,group_concat和计数问题

来自分类Dev

为什么必须仅将(),[],->和=重载为成员函数?

来自分类Dev

为什么必须仅将(),[],->和=重载为成员函数?

来自分类Dev

为什么空条件运算符对于==和.Equals()的行为会有所不同?

来自分类Dev

为什么使用StringBuffer.reverse后equals()为true?

来自分类Dev

当我在Visual Studio中运行程序时,为什么窗口窗体看起来与众不同?

来自分类Dev

为什么在String类中将equals方法定义为equals(Object anObject)而不将其定义为equals(String anObject)?

来自分类Dev

为什么将composer设计为使用两个文件:composer.json和composer.lock,而不是一个文件

来自分类Dev

为什么Java中的Map <>设计为需要两种类型?Map <>和HashMap <>?

来自分类Dev

为什么将Erlang中的变量设计为以大写字母开头?

来自分类Dev

为什么应该将fork()设计为返回文件描述符?

来自分类Dev

为什么将这种Xeon设计为能够支持2个时钟速率?

来自分类Dev

为什么将 React 组件存储为变量或状态是糟糕的设计实践

来自分类Dev

MySQL认为'е'和'ё'相等,如何设置它们以使其与众不同?

来自分类Dev

MySQL和,并在具有多个连接的另一列上与众不同

Related 相关文章

  1. 1

    Linq Orderby和与众不同

  2. 2

    Linq Orderby和与众不同

  3. 3

    为什么Netbeans设计人员将JFrame大小设置为与我指定的大小不同?

  4. 4

    我需要什么,与众不同或分组?

  5. 5

    为什么我的吐司看上去与众不同?

  6. 6

    为什么我的.htaccess在Codeigniter中与众不同

  7. 7

    硬盘和类型-是什么使它们与众不同?

  8. 8

    Clojure:为什么字符串上的=和.equals具有不同的性能?

  9. 9

    即使变量是引用类型,为什么Equals和ReferenceEquals方法的结果也不同?

  10. 10

    是什么使裸机工具链与众不同?

  11. 11

    是什么使某些命名函数/运算符与众不同?

  12. 12

    是什么让Apple硬盘驱动器与众不同?

  13. 13

    为什么将Symbol.iterator设计为Symbol类型?

  14. 14

    作者为什么将localCacheBillingClient设计为lateinit?

  15. 15

    MySQL与众不同,group_concat和计数问题

  16. 16

    为什么必须仅将(),[],->和=重载为成员函数?

  17. 17

    为什么必须仅将(),[],->和=重载为成员函数?

  18. 18

    为什么空条件运算符对于==和.Equals()的行为会有所不同?

  19. 19

    为什么使用StringBuffer.reverse后equals()为true?

  20. 20

    当我在Visual Studio中运行程序时,为什么窗口窗体看起来与众不同?

  21. 21

    为什么在String类中将equals方法定义为equals(Object anObject)而不将其定义为equals(String anObject)?

  22. 22

    为什么将composer设计为使用两个文件:composer.json和composer.lock,而不是一个文件

  23. 23

    为什么Java中的Map <>设计为需要两种类型?Map <>和HashMap <>?

  24. 24

    为什么将Erlang中的变量设计为以大写字母开头?

  25. 25

    为什么应该将fork()设计为返回文件描述符?

  26. 26

    为什么将这种Xeon设计为能够支持2个时钟速率?

  27. 27

    为什么将 React 组件存储为变量或状态是糟糕的设计实践

  28. 28

    MySQL认为'е'和'ё'相等,如何设置它们以使其与众不同?

  29. 29

    MySQL和,并在具有多个连接的另一列上与众不同

热门标签

归档