Assuming both objects are not value types and both represent types which have overridden the Equals(...) method, is there any functional difference between:
obj1.Equals(obj2)
Object.Equals(obj1, obj2)
...or are they functionally the same? The Apress book I'm reading (Pro C# 2008), which is actually quite good, refers to this method (as well as ReferenceEquals(...)
) as "(very helpful) static methods", but I'm struggling to see the benefit here.
For ReferenceEquals(...)
I can see the utility, as it is still capable of determining if two objects reference the same object (regardless of whether the Equals(...)
method and and the ==
operator have been overridden).
For the other...not so much; Am I just missing something here?
想象一下,在第一种情况下, obj1
为空。
Object.Equals(obj1, obj2):
if obj1 and obj2 are the same reference, returns true
if obj1 or obj2 is null, return false
otherwise returns obj1.Equals(obj2)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.