C# 正在检查空值,==null vs!=无效的

C# 正在检查空值,==null vs!=无效的,c#,.net,C#,.net,是否有一种检查null的推荐方法(根据.net Framework指南),例如: if (value == null) {//code1} else {//code2} 或 或者两个代码的性能相同?两个选项的性能相同 您应该使用语义上有意义的,或者使用更干净的代码。 例如,如果非空操作较短,则将该块放在第一位是有意义的,以便else与if没有性能差异,因此应努力提高可读性 例如,在if分支中放置更“常规”的路径,在else分支中放置“异常”的路径通常是一个好主意。性能没有差异。我个人在else

是否有一种检查null的推荐方法(根据.net Framework指南),例如:

if (value == null)
{//code1}
else
{//code2}


或者两个代码的性能相同?

两个选项的性能相同

您应该使用语义上有意义的,或者使用更干净的代码。

例如,如果非空操作较短,则将该块放在第一位是有意义的,以便
else
if

没有性能差异,因此应努力提高可读性


例如,在
if
分支中放置更“常规”的路径,在
else
分支中放置“异常”的路径通常是一个好主意。

性能没有差异。我个人在
else
分支中将更常见的情况放在顶部,将不太常见的情况放在顶部,但这只是首选项。这使我更容易看到更常见的场景。

没有性能差异。根据需要使用它们(可读性/可用性角度)如果最合适/使用的块进入
,而可选/次要块进入
其他

都是相同的。。为了可读性,您可以将代码块放入IF中,从而将结果设置为true。在这种情况下,如果(value!=null)可读性更好且更明显:)

“没有性能差异,所以您应该为可读性编写代码”——实际上,首先编写可读代码总是一个好主意:-)@zerkms,这是一个很好的起点。但是,如果您的评测遇到瓶颈,您有时不得不牺牲可读性。@Kirk Woll:是的,但只有在您编写了漂亮的代码之后。设计良好的代码更容易改进(从性能角度来看)或使用
value==null?code1:code2
如果您愿意!有很多方法可以让皮肤光滑cat@zerkms,是否因为您轻视
运算符?我认为Charleh的建议没有问题。@Slaks,我希望更多的人先把较短的块放在前面,当我看到一个块中有40行时,我会退缩,其他的,然后是一行代码…@Kirk Woll:我很喜欢,但昨天我用了3层嵌套(我是指高度为3的二进制3,所以三元运算符的总数是~6或7)在一个表达式中使用三元运算符。唯一的原因是作者希望看起来很酷,因为它可以用
if
以更可读的方式实现。所以,也许今天我鄙视它;-)@虫族,很公平——在这种情况下,我们基本上都同意上面的丹尼尔的观点
if (value != null)
{//code2}
else
{//code1}