现在的位置: 首页 > 综合 > 正文

重写Equals

2013年03月01日 ⁄ 综合 ⁄ 共 345字 ⁄ 字号 评论关闭

重写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()

 

 

 

【上篇】
【下篇】

抱歉!评论已关闭.