嵌套在C#中的Else语句

时间:2013-05-06 07:13:34

标签: c# .net

我有一个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案例。

3 个答案:

答案 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)

简化代码模式是没有办法(据我所知)。这似乎没问题,因为它已经非常简单了。