我经常发现自己在编写类似下面示例的代码:
if (object["Object Name"] != null) {
if (object["Object Name"] == "Some Value") {
// Do Statement A
} else {
// Do Statement B
}
} else {
// Do Statement B
}
这里的问题是我经常检查一个对象是否为空,然后我可以检查它的实际内容。
“语句 B”总是相同的,在我的例子中通常是一条 SQL 语句。
一定有更好的方法解决这个问题吗?
谢谢
斯蒂芬
最佳答案
C# 中存在短路,因此您可以:
if(null != object && object.name == foo)
do A
else
do B
C# 总是首先计算条件语句中的第一个表达式,如果失败,它不会尝试语句的该部分中的任何其他内容。
为了进一步说明这一点,如果您要在条件语句中进行一个昂贵的操作以及一个或多个廉价操作,最好尽可能将其放在最后,这样它只会在需要时检查昂贵的操作真的需要。所以像
if(trivial comparison && trivial comparison && REALLY EXPENSIVE OPERATION)
它现在只会在万不得已的情况下执行昂贵的操作。
关于c# - C# 中的 Double If Else 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1612861/