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?
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)
Imagine if, in the first case, obj1
was null.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With