まだできることは、単一レベルの間接化です。表現したいことをより明確にし、構造を好きなように残します。そして、この変換は、小数点スイッチを使用したい場所ならどこでも使用できます。わかりやすいですね。
私が伝えたいことを示す簡単なコードを次に示します。
public enum EnumChangeAmt
{
Undetermined,
Negative,
Positive,
ExactlyNull,
}
public class EnumSwitchSample
{
public void EnumSwitch()
{
var changeAmt = 0;
var changeAmtType = GetChangeAmt(changeAmt);
switch (changeAmtType)
{
case EnumChangeAmt.Negative:
{
break;
}
case EnumChangeAmt.Positive:
{
break;
}
case EnumChangeAmt.ExactlyNull:
{
break;
}
case EnumChangeAmt.Undetermined:
default:
{
// do something about it
break;
}
}
}
public EnumChangeAmt GetChangeAmt(int changeAmt)
{
if (changeAmt < 0)
{
return EnumChangeAmt.Negative;
}
if (changeAmt > 0)
{
return EnumChangeAmt.Positive;
}
if (changeAmt == 0)
{
return EnumChangeAmt.ExactlyNull;
}
return EnumChangeAmt.Undetermined;
}
}
Andre Calil が述べたように、列挙型はここで非常に便利です!