微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#中的双重问题#

我经常发现自己编写类似的代码,如下例所示:

if (object["Object Name"] != null) {
    if (object["Object Name"] == "Some Value") {
        // Do Statement A
    } else {
        // Do Statement B
    }
} else {
    // Do Statement B
}

这里的问题是我检查一个对象是否为null然后我可以检查它的实际内容.

“语句B”始终相同,在我的情况下通常是sql语句.

必须有更好的解决方法吗?

谢谢
斯蒂芬

解决方法

C#中存在短路,因此您可以执行以下操作:

if(null != object && object.name == foo)
  do A
else
  do B

C#总是首先计算条件语句中的第一个表达式,如果失败,它不会在语句的那一部分中尝试任何其他表达式.

为了进一步说明这一点,如果您要在条件语句中进行昂贵的操作以及一个或多个廉价操作,最好尽可能将其放在最后,因此它只会在确实需要时检查昂贵的操作. .所以像

if(trivial comparison && trivial comparison && REALLY EXPENSIVE OPERATION)

它现在只会作为最后的手段执行昂贵的操作.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐