首页 > 其他 > 详细

equals & ==

时间:2015-12-08 22:14:40      阅读:149      评论:0      收藏:0      [点我收藏+]

对于值类型,==和equals等价,都是比较存储信息的内容。
而对于引用类型,==比较的是引用类型在栈中的地址,equals方法则比较的是引用类型在托管堆中的存储信息的内容。
对于string类要特殊处理,它是一个内部已经处理好了equals方法和==的类,故==和equals等价,都是比较存储信息的内容。
对于一些自定义的类,我们有必要重载equals方法,否则它默认为基类的equals方法(基类没有重载Equals方法则为Object类中的Equals方法),他们的比较也为地址,而不是引用类型在托管堆中的存储信息的内容。故我们就不难理解一下输出了:
Person p1 = new Person("jia");
Person p2 = new Person("jia");
Console.WriteLine(p1 == p2);//输出False
Console.WriteLine(p1.Equals(p2));//输出False

equals & ==

原文:http://www.cnblogs.com/newcoder/p/5030884.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!