C# ReferenceEquals,equals,==区别

来源:互联网 发布:资源管理器 知乎 编辑:程序博客网 时间:2024/04/30 14:49

ReferenceEquals:

永远比较2个引用对象所指向的地址是否相同,是比较引用

 

对于2个值类型,ReferenceEquals永远都为false,因为使用ReferenceEquals(object a,object b)方法后

值类型被重新装箱为新的引用类型实例,自然不会引用相等。

 

对于2个引用类型,ReferenceEquals则会比较它们是否指向同一地址。

 

Equals:

永远比较2个对象(无论引用,非引用)的值是否相等,是比较值

 

==:

对于引用对象比较其引用(string引用类型除外,string是比较值)

对于值类型比较其值

 

原创粉丝点击