首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >引用相等性能差异?((object)obj1 == (object) obj2 ) vs. object.ReferenceEquals( obj1,obj2)

引用相等性能差异?((object)obj1 == (object) obj2 ) vs. object.ReferenceEquals( obj1,obj2)
EN

Stack Overflow用户
提问于 2009-04-09 19:17:33
回答 6查看 11K关注 0票数 19

与使用((object)obj1 == (object)obj2)相比,使用object.ReferenceEquals方法是否有额外的开销

在第一种情况下,会涉及一个静态方法调用,而在这两种情况下,都会涉及到某种形式的对象类型转换。

即使编译器平衡了这些方法,不等式又如何呢?

(object)obj != null

与……相比

!object.ReferenceEquals(obj,null)

我认为在某个时刻,逻辑否定将发生在!=运算符中,或者应用于ReferenceEquals方法的结果。你认为如何?

还有一个需要考虑的可读性问题。在检查相等时,ReferenceEquals似乎更清晰,但对于不平等,人们可能会错过object.ReferenceEquals之前的!,而第一个变体中的!=很难忽略。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/735554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档