繁体   English   中英

为什么我的枚举在switch语句中不起作用?

[英]Why isn't my enum working in the switch statement?

我记得在过去的switch语句中使用过enum ,根据C#如何将inum与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:默认情况下,枚举是静态的,所以不要将它们声明为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)

暂无
暂无

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

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