c# - C# 中的 Double If Else 问题

标签 c# if-statement

我经常发现自己在编写类似下面示例的代码:

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/

相关文章:

c# - 将具有多个参数的函数作为参数传递

c# - VS中对象关系设计器和实体数据模型设计器的区别

python - 在 for 循环中添加 if 语句

java - 为什么我不能在 '_' 语句中与 "if"char 进行比较?

java - 想要创建 if 语句,然后是几个 else-if 语句,最后是一个 "capture-all"else-语句

c# - 在并发编辑环境中为子实体强制执行不变量

c# - 从生成它的应用程序中调试生成的 .NET 程序集

c# - 如何在不丢失任何列的情况下读取 c# 中的 excel 文件?

mysql - 在选择中,当列具有特定值时添加假行

java - 根据用户输入测试字符串和整数数组