繁体   English   中英

启用默认大小写的枚举将无法编译。

[英]Switch on enum with default case won't compile.

我正在尝试通过枚举使用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:返回编译错误case default: line:-

语法错误,'('预期。

冒号下方有红色的下划线。 谁能知道是怎么回事?

default行中删除case

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM