object.Equals与object.ReferenceEquals方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了object.Equals与object.ReferenceEquals方法相关的知识,希望对你有一定的参考价值。
object.Equals方法表达的是语义判等,不一定是引用判等。
object.ReferenceEquals方法是肯定是引用判等。
怎么实现一个对象的值语义的 Equals方法?实验。
MyClass bool Equals(MyClass other)
{
// 1. other==null?
// 2. 实际type是否相等
// 3. 简单类型的字段是否相等。调用引用类型的字段的Equals方法。
}
Notes:
MyClass对象因的字段,以及引用字段又引用的字段,可能结果是递归遍历一棵树都要实现custom的Equal。
以上是关于object.Equals与object.ReferenceEquals方法的主要内容,如果未能解决你的问题,请参考以下文章
Object.hashCode()与Object.equals()
C# 运算符 ==、StringBuilder.Equals、Object.Equals 和 Object.ReferenceEquals 之间的区别
浅析Object基类提供的Virtual Object.Equals, Static Object.Equals and Reference.Equals等三个方法