假设这两个对象都不是值类型,并且都表示已覆盖 Equals(...) 方法的类型,那么以下之间是否存在任何功能差异:
- 打电话
obj1.Equals(obj2)
- 调用
Object.Equals(obj1, obj2)
...或者它们在功能上是否相同?
我正在阅读的 Apress 书(Pro C# 2008)实际上非常好,将这种方法(以及ReferenceEquals(...)
)称为“(非常有用的)静态方法”,但我很难看到这里的好处。
因为ReferenceEquals(...)
我可以看到该实用程序,因为它仍然能够确定两个对象是否引用同一个对象(无论Equals(...)
方法和==
运算符是否已被覆盖)。
对于另一个......不是那么多;我只是在这里遗漏了什么吗?