C#中的相等有两种类型:引用相等(ReferenceEquals)和值相等(Equals)。值相等就是说两个对象包含相同的值。而引用相等则比较的是两个对象的引用是否是同一个对象。也就是说,如果ReferenceEquals为True,则Equals必然为True,反过来就不一定了。
引用相等(ReferenceEquals)在object类静态实现,其原型是public static bool ReferenceEquals(object objA, object objB)。针对值类型,首先是将值类型装箱变为引用类型(地址肯定不同),在比较地址是否相等,因此返回的总是false,所以该函数主要针对引用类型比较。
object类还实现另外两个Equal函数,分别为 public static bool Equals(object objA, object objB),public