我有一个Nested if else语句来检查枚举状态
if ( status == enum.value1)
{
//Call some function 1
}
else if ( status == enum.value2)
{
//call some function 2
}
else if ( status == enum.valu3 )
{
call some function 3.
}
else if ( status == enum.valu3 || status == enum.valu10)
{
call some function 4.
}
我怎么能重构/简化这个?我不想使用swicth案例。
答案 0 :(得分:9)
尝试字典。填写代表:
Dictionary<YourEnum, Action> dict = new Dictionary<YourEnum, Action>();
dict.Add(YourEnum.value1, MyMethod1);
dict.Add(YourEnum.value2, MyMethod2);
//etc.
然后返回它们并在需要时调用它们:
dict[myEnumValue]();
答案 1 :(得分:1)
如果您有大量选项,多个ifs或switch语句不方便,您可以使用枚举类型作为键创建一个Dictionary,并将委托作为值。
答案 2 :(得分:-2)
简化代码模式是没有办法(据我所知)。这似乎没问题,因为它已经非常简单了。