operator == calls ReferenceEquals when comparing objects, so compare that the objects point to the same place in memory.
Equals instead is just a virtual method, so it can behave differently for different types, since it can be overridden.
For example, for the CLR, string Equals compares the contents of a string , not the link, even if string is a reference type.
source share