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

Bri*_*per 1 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是这会case default:在行上返回一个编译错误: -

语法错误,'('预期.

结肠下面的小红色下划线.任何人都可以看到问题是什么?

Rob*_*don 14

掉落的casedefault线:

switch (input)
{
    case myEnum.This:
        // do something;
        break;
    case myEnum.That:
        // do something;
        break;
    case myEnum.TheOther:
        // do something
        break;
    default:
        // do something;
        break;
}
Run Code Online (Sandbox Code Playgroud)


小智 8

正如Rob Lyndon已经回答的那样,正确的语法就是这样default:.但是,为了解释你得到的错误信息,case defaultcase default(int):表达式的有效开始(这意味着case 0:),但为了有效,default需要后跟一个左括号,这就是错误信息的报告内容.