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等三个方法

为啥 Object.Equals(new Object(), new Object()) 是假的?

Object,equals,toString

java中,父类Object的“equals()方法”和“==”效果是否一样的?