加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#中的双重问题#

发布时间:2020-12-15 20:48:06 所属栏目:百科 来源:网络整理
导读:我经常发现自己编写类似的代码,如下例所示: if (object["Object Name"] != null) { if (object["Object Name"] == "Some Value") { // Do Statement A } else { // Do Statement B }} else { // Do Statement B} 这里的问题是我检查一个对象是否为null然后
我经常发现自己编写类似的代码,如下例所示:

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)

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读