我经常发现自己编写类似的代码,如下例所示:
if (object["Object Name"] != null) {
if (object["Object Name"] == "Some Value") {
// Do Statement A
} else {
// Do Statement B
}
} else {
// Do Statement B
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是我检查一个对象是否为null然后我可以检查它的实际内容.
"语句B"始终相同,在我的情况下通常是SQL语句.
必须有更好的解决方法吗?
谢谢
Stephen
kem*_*002 23
C#中存在短路,因此您可以执行以下操作:
if(null != object && object.name == foo)
do A
else
do B
Run Code Online (Sandbox Code Playgroud)
C#总是首先计算条件语句中的第一个表达式,如果失败,它不会在语句的那一部分中尝试任何其他表达式.
为了进一步这一点,如果你要在条件语句昂贵的操作与一个或多个廉价的操作一起,这是很好的把它在结束时,如果可能的话,那么它只会检查昂贵的操作时,它确实需要.所以像
if(trivial comparison && trivial comparison && REALLY EXPENSIVE OPERATION)
Run Code Online (Sandbox Code Playgroud)
它现在只会作为最后的手段执行昂贵的操作.
| 归档时间: |
|
| 查看次数: |
4119 次 |
| 最近记录: |