相关疑难解决方法(0)

参考平等性能差异?((object)obj1 ==(object)obj2)vs.object.ReferenceEquals(obj1,obj2)

使用该object.ReferenceEquals方法使用时会有额外的开销((object)obj1 == (object)obj2)吗?

在第一种情况下,将涉及静态方法调用,并且在两种情况下都涉及到对象的某种形式的转换.

即使编译器平衡了那些方法,那么不等式呢?

(object)obj != null
Run Code Online (Sandbox Code Playgroud)

相比于...

!object.ReferenceEquals(obj,null)
Run Code Online (Sandbox Code Playgroud)

我想在某些时候,会在!=运算符内或者应用于ReferenceEquals方法的结果时发生逻辑否定.你怎么看?

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

c# performance coding-style readability equality

19
推荐指数
2
解决办法
9606
查看次数

空引用检查的好习惯是什么?

检查对象上的空引用的最有效方法是什么?我看过各种代码示例,它们有不同的检查方式,以便最有效或者被认为是最佳实践使用的方法如下:

Object.ReferenceEquals(item, null)

item == null

item != null

Object.Equals(item, null)
Run Code Online (Sandbox Code Playgroud)

谢谢

c# performance

9
推荐指数
3
解决办法
2万
查看次数

c#中最短的空值检查

c#中有没有更短的方法来写这个:

if(myobject!=null){

}
Run Code Online (Sandbox Code Playgroud)

JavaScript中我们可以这样做:

if(myobject){

}
Run Code Online (Sandbox Code Playgroud)

免责声明:我知道这在JavaScript中也会匹配'true'.这只能用于应该是特定类型对象的变量.

我发现了一些类似的问题,但他们提出的问题略有不同:

C#检查空的最短路径,如果没有则分配另一个值

检查对象是否为空的最佳和最快方法

如何确定变量是"未定义"还是"空"?

javascript c# null

4
推荐指数
2
解决办法
1414
查看次数