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:在开关
的情况下,您需要提供包含任何有效枚举值[编辑、上载、同步、无]
的enumApplicationMode
变量,但您正试图提供enum
类型ApplicationMode
本身
解决方案2:提供包含任何有效值的enumApplicationMode
变量
试试这个:
ApplicationMode appMode = ApplicationMode.Upload; //assign any value
switch(appMode)
问题1:枚举在默认情况下是静态的,因此不要将它们声明为静态的
解决方案1:您需要删除枚举声明中的static
关键字
public enum ApplicationMode
{
Edit,
Upload,
Sync,
None
}
问题2:在开关
的情况下,您需要提供包含任何有效枚举值[编辑、上载、同步、无]
的enumApplicationMode
变量,但您正试图提供enum
类型ApplicationMode
本身
解决方案2:提供包含任何有效值的enumApplicationMode
变量
试试这个:
ApplicationMode appMode = ApplicationMode.Upload; //assign any value
switch(appMode)
错误消息告诉了确切的原因。switch语句要求您提供类型为ApplicationMode
的变量,而不是类型本身。这就是为什么会出现编译错误。在程序的任何地方都不会显示ApplicationMode
类型的变量。有一套吗?更重要的是,你想做什么?用户单击了编辑按钮。您想现在编辑,还是想将模式设置为edit
?错误消息告诉了确切的原因。switch语句要求您提供类型为ApplicationMode
的变量,而不是类型本身。这就是为什么会出现编译错误。在程序的任何地方都不会显示ApplicationMode
类型的变量。有一套吗?更重要的是,你想做什么?用户单击了编辑按钮。您想现在编辑,还是想将模式设置为编辑
?谢谢@Sudhakar,您刚刚提醒了我以前是怎么做的。你的回答很有帮助。谢谢你@Sudhakar,你刚刚提醒我过去是怎么做的。你的回答很有帮助。