使用默认情况启用枚举将无法编译。

时间:2013-06-17 12:39:10

标签: c# switch-statement

我试图在枚举上使用switch语句,如下所示: -

public enum myEnum
{
    This = 0,
    That = 1,
    TheOther = 2
}

private void doo_foo (myEnum input)
{
    switch (input)
    {
        case myEnum.This:
            // do something;
            break;
        case myEnum.That:
            // do something;
            break;
        case myEnum.TheOther:
            // do something
            break;
        case default:
            // do something;
            break;
    }
}

但这会在case default:行返回编译错误: -

  

语法错误,'('预期。

结肠下方有一点红色下划线。谁能看出问题是什么?

2 个答案:

答案 0 :(得分:14)

case行中删除default

switch (input)
{
    case myEnum.This:
        // do something;
        break;
    case myEnum.That:
        // do something;
        break;
    case myEnum.TheOther:
        // do something
        break;
    default:
        // do something;
        break;
}

答案 1 :(得分:8)

正如Rob Lyndon已经回答的那样,正确的语法只是default:。但是为了解释您收到的错误消息,case defaultcase default(int):表达式的有效开头(表示case 0:),但为了有效,default需要后跟一个左括号,这就是错误信息所报告的内容。