匿名类型的相等性

本文关键字:类型 | 更新日期: 2023-09-27 18:03:48

为什么Equals()和==的语义在比较匿名类型时不同?为什么一个比较值,另一个比较引用?这背后的原因是什么?

匿名类型的相等性

==不调用Equals,查找==重载运算符。由于匿名类型没有重载的==操作符,因此c#对其使用引用比较。

但是对于Equals,它比较字段值。这就是为什么==Equals的结果不同。

匿名类型(c#编程指南)

因为匿名类型的Equals和GetHashCode方法是类的Equals和GetHashCode方法定义的属性,相同匿名类型的两个实例仅相等