匿名类型的相等性
本文关键字:类型 | 更新日期: 2023-09-27 18:03:48
为什么Equals()和==的语义在比较匿名类型时不同?为什么一个比较值,另一个比较引用?这背后的原因是什么?
==
不调用Equals
,查找==
重载运算符。由于匿名类型没有重载的==
操作符,因此c#对其使用引用比较。
但是对于Equals
,它比较字段值。这就是为什么==
和Equals
的结果不同。
匿名类型(c#编程指南)
因为匿名类型的Equals和GetHashCode方法是类的Equals和GetHashCode方法定义的属性,相同匿名类型的两个实例仅相等