2009-10-05 51 views
4

假設兩個對象都沒有的值類型和都代表已重寫的Equals(...)方法的類型,是否有任何之間功能上的差異:調用obj1.Equals(obj2) Object.Equals(obj1,obj2)vs obj1.Equals(obj2)?

  • 調用Object.Equals(obj1, obj2)

    • ...或他們在功能上是一樣的嗎?

    的Apress出版的書我讀(臨C#2008),這實際上是相當不錯的,指的是這種方法(以及ReferenceEquals(...))爲「(非常有用)靜態方法」,但我掙扎在這裏看到的好處。

    對於ReferenceEquals(...)我可以看到實用的,因爲它仍然是能夠確定兩個對象引用同一對象(無論是否Equals(...)方法和與操作者==已經重寫)。

    對於其他...沒有那麼多;我在這裏錯過了什麼嗎?

  • 回答

    8

    的Object.Equals(OBJ1,OBJ2):

    如果OBJ1和OBJ2是相同的參考,返回true

    如果OBJ1或OBJ2爲空,返回false

    否則返回obj1.Equals (OBJ2)

    +0

    我不明白爲什麼我們會使用obj1.Equals(OBJ2)即可。 – 2017-05-15 09:08:39

    8

    想象一下,如果在第一種情況下obj1爲空。

    相關問題