代码改变世界

object.Equals与object.ReferenceEquals方法

2017-06-04 16:58  Dirichlet  阅读(620)  评论(0编辑  收藏  举报

object.Equals方法表达的是语义判等,不一定是引用判等。

object.ReferenceEquals方法是肯定是引用判等。

 

怎么实现一个对象的值语义的 Equals方法?实验。

MyClass bool Equals(MyClass other)

{

   // 1. other==null?

   // 2. 实际type是否相等

   // 3. 简单类型的字段是否相等。调用引用类型的字段的Equals方法。

}

 

Notes:

MyClass对象引用字段,以及引用字段又引用的字段,可能结果是递归遍历一棵树都要实现custom的Equal。