Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么不是';我的枚举在switch语句中不工作吗?_C#_.net_Enums_Switch Statement - Fatal编程技术网

C# 为什么不是';我的枚举在switch语句中不工作吗?

C# 为什么不是';我的枚举在switch语句中不工作吗?,c#,.net,enums,switch-statement,C#,.net,Enums,Switch Statement,我记得过去在switch语句中使用了enums,根据我的说法,我的做法是正确的。但我刚刚尝试再次执行此操作,并收到以下错误: “ApplicationMode”是一个“类型”,但与“变量”一样使用 以下是我正在使用的代码: public static enum ApplicationMode { Edit, Upload, Sync, None } private void edit_Click(object sender, EventArgs e) {

我记得过去在
switch
语句中使用了
enum
s,根据我的说法,我的做法是正确的。但我刚刚尝试再次执行此操作,并收到以下错误:

“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:枚举在默认情况下是静态的,所以不要将它们声明为
静态的

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

public enum ApplicationMode
{
    Edit,
    Upload,
    Sync,
    None
}
问题2:
开关
的情况下,您需要提供包含任何有效枚举值
[编辑、上载、同步、无]
的enum
ApplicationMode
变量,但您正试图提供
enum
类型
ApplicationMode
本身

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

试试这个:

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

问题1:枚举在默认情况下是静态的,因此不要将它们声明为
静态的

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

public enum ApplicationMode
{
    Edit,
    Upload,
    Sync,
    None
}
问题2:
开关
的情况下,您需要提供包含任何有效枚举值
[编辑、上载、同步、无]
的enum
ApplicationMode
变量,但您正试图提供
enum
类型
ApplicationMode
本身

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

试试这个:

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

错误消息告诉了确切的原因。switch语句要求您提供类型为
ApplicationMode
的变量,而不是类型本身。这就是为什么会出现编译错误。在程序的任何地方都不会显示
ApplicationMode
类型的变量。有一套吗?更重要的是,你想做什么?用户单击了编辑按钮。您想现在编辑,还是想将模式设置为
edit
?错误消息告诉了确切的原因。switch语句要求您提供类型为
ApplicationMode
的变量,而不是类型本身。这就是为什么会出现编译错误。在程序的任何地方都不会显示
ApplicationMode
类型的变量。有一套吗?更重要的是,你想做什么?用户单击了编辑按钮。您想现在编辑,还是想将模式设置为
编辑
?谢谢@Sudhakar,您刚刚提醒了我以前是怎么做的。你的回答很有帮助。谢谢你@Sudhakar,你刚刚提醒我过去是怎么做的。你的回答很有帮助。