为什么我的enum不在switch语句中工作?

时间:2014-04-26 02:19:08

标签: c# .net enums switch-statement

我记得过去曾在enum语句中使用switch,根据C# how to use enum with switch我正在以正确的方式进行操作。但是我刚刚尝试再次这样做,我收到了以下错误:

  

' ApplicationMode'是一种'类型'但是用作变量'。

这是我正在使用的代码:

public static enum ApplicationMode
{
    Edit,
    Upload,
    Sync,
    None
}

private void edit_Click(object sender, EventArgs e)
{
    switch(ApplicationMode) // This is where I see the error.
    {
        case ApplicationMode.Edit:
            break;
        ...
    }
}

我做错了什么?

1 个答案:

答案 0 :(得分:4)

问题1:枚举默认为静态,因此请勿将其声明为static

解决方案1:您需要删除枚举声明中的static关键字

public enum ApplicationMode
{
    Edit,
    Upload,
    Sync,
    None
}

问题2: switch案例中您需要提供包含任何有效枚举值ApplicationMode的枚举[Edit,Upload,Sync,None]变量,但您试图提供enum类型ApplicationMode本身。

解决方案2:提供包含任何有效值的枚举ApplicationMode变量。

试试这个:

ApplicationMode appMode = ApplicationMode.Upload; //assign any value
switch(appMode)