2

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

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

或者

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

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

4

5 回答 5

15

这两个选项将执行相同的操作。

您应该使用语义上有意义的任何一个,或者任何一个导致更清晰的代码。
例如,如果非空操作更短,则将那个块放在第一位是有意义的,这样else就接近if.

于 2012-11-27T03:12:08.433 回答
11

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

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

于 2012-11-27T03:12:30.190 回答
4

性能上没有区别。我个人将更常见的情况放在最上面,将不太常见的情况放在else分支中,但这只是偏好。这让我更容易看到更常见的场景。

于 2012-11-27T03:12:50.493 回答
2

没有性能差异。根据您的需要使用它们(可读性/可用性角度)。最合适/使用的块进入,if可选/次要块进入else.

于 2012-11-27T03:12:54.500 回答
0

两者都是相同的..为了便于阅读,您可以将代码块放在 IF 中,结果为真。在这种情况下 IF(value != null) 可读性更好,更明显:)

于 2012-11-27T09:24:13.830 回答