1

我正在尝试在枚举上使用 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:在行上返回编译错误:-

语法错误,应为“(”。

冒号下方的红色小下划线。任何人都可以看到这是怎么回事吗?

4

2 回答 2

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;
}
于 2013-06-17T12:39:55.370 回答
8

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

于 2013-06-17T12:41:28.963 回答