重写Equals

重写Equals方法分为以下三种情况:

1.引用类型的基类没有重写Equals

2.引用类型的基类重写了Equals

3.值类型重写了Equals

通常写法是:

对象是否为空,为空返回false

对象类型是否相同,不同返回false

类型转换后进行引用与值的比较如下:

Object.Equals(v1,v2) ,不同返回false

v1.Equals(v2),不同返回false

 

对于基类,if(!base.Equals(v2)) return false;

 

值类型可以自己实现强类型的Equals,避免拆箱与装箱操作.注意System.ValueType.Equals()利用了反射实现,效率不高.

注意:Object.ReferenceEquals();

重写Equals必须重写GetHashCode()

 

 

 

posted @ 2010-04-07 08:26  smodi  阅读(738)  评论(0编辑  收藏  举报