1

为什么是下面这段代码false

Object.Equals(new Object(), new Object())
4

2 回答 2

8

来自MSDN

Equals 的默认实现支持引用类型的引用相等,以及值类型的按位相等。引用相等意味着被比较的对象引用指向同一个对象。按位相等意味着被比较的对象具有相同的二进制表示。

换句话说,您正在创建两个相同类型的不同对象,并查看它们是否是完全相同的对象,而事实并非如此。

于 2012-05-28T01:58:07.857 回答
6

根据MSDN 文档

Equals 的默认实现支持引用类型的引用相等,以及值类型的按位相等。引用相等意味着被比较的对象引用指向同一个对象。按位相等意味着被比较的对象具有相同的二进制表示。

请注意,派生类型可能会覆盖 Equals 方法以实现值相等。值相等意味着比较对象具有相同的值但不同的二进制表示。

您正在创建两个不同的对象。

于 2012-05-28T01:58:50.040 回答