【发布时间】:2013-05-02 22:15:16
【问题描述】:
我有一个类似下面的函数
string Foo(bool A, bool B)
{
if(A)
{
if(B)
{
return "W";
}
else
{
return "X";
}
}
else
{
if(B)
{
return "Y";
}
else
{
return "Z";
}
}
}
这种双重嵌套对我来说是错误的。有没有更好的方法来实现这种模式?
感谢大家的帮助,我最终选择了三元路线。它帮助扭转了局面:
if (female)
{
if (nutered)
{
destRow["TargetSex"] = "FS";
}
else
{
destRow["TargetSex"] = "F";
}
}
else
{
if (nutered)
{
destRow["TargetSex"] = "MN";
}
else
{
destRow["TargetSex"] = "M";
}
}
到这里
destRow["TargetSex"] = female ? (nutered ? "FS" : "F")
: (nutered ? "MN" : "M");
【问题讨论】:
-
总有
if(A && B) { } else if (B) { } else { } -
@DavidStarkey 有 4 种可能的结果状态,你只返回 3 个。
-
然后
if(A && B) { } else if (!A && B) { } else if (B) { } else { } -
@DavidStarkey:当然应该是:
if(A && B) { } else if (A) { } else if (B) { } else { }。 -
@Pieter Geerkens 当然 :) 感谢您的关注。
标签: c# simplification