C#嵌套If语句的Else条件处理及实现方案问询
合并嵌套If分支以覆盖目标场景
我需要让两种情况进入else分支:
- 满足Scenario 1但不满足Scenario 2
- 不满足Scenario 1
原有嵌套If代码如下:
if (!BoxA_IsNull && !BoxB_IsNull && !BoxC_IsNull && !BoxD_IsNull) //Scenario 1 { if (BoxA == BoxB && BoxC == BoxD) //Scenario 2 { //Do something } } else { // Do something else if // 1) Scenario 1 hits but not scenario 2 // 2) Scenario 1 does not hit }
但这段代码里,满足Scenario 1却不满足Scenario 2的情况无法进入else分支。最终我调整为将两个条件合并成一个顶层判断:
if ((!BoxA_IsNull && !BoxB_IsNull && !BoxC_IsNull && !BoxD_IsNull) && (BoxA == BoxB && BoxC == BoxD)) { //do something }
关键说明
这么做既能让所有不符合合并条件的情况(也就是原需求里的两种else场景)都进入后续的else逻辑,同时还能保证先完成空值检查,再执行对象比较,避免触发空引用异常。
内容的提问来源于stack exchange,提问作者gymcode
相关产品推荐
相关产品推荐

