【发布时间】:2026-01-15 02:35:01
【问题描述】:
我正在使用 C# 开发一个项目,由于某种原因,当我尝试为枚举变量赋值时,赋值不会发生。我会复制我的代码,但这实际上只是一个简单的任务。是这样的:
testVar = MyEnum.TYPE_OF_ENUM;
其中testVar 的类型为MyEnum。当我使用 VisualStudio 调试器单步执行这一行时,我可以看到 testVar 的值没有改变。是什么可能导致这样的任务失败?
编辑:
好的,我将提供更多上下文。
public enum MyEnum1
{
ONE,
TWO,
THREE,
FOUR,
FIVE,
SIX,
SEVEN,
EIGHT
}
public enum MyEnum2
{
A,
B,
C,
D,
E,
F
}
public void StateMachine(MyEnum1 state1)
{
if(state2 == MyEnum2.A)
{
switch (state1)
{
case MyEnum1.ONE:
state2 = MyEnum2.B;
MyFunc(MyEnum2.B);
break;
default:
break;
}
}
else if (state2 == MyEnum2.B)
{
switch(state1)
{
case MyEnum1.ONE:
state2 = MyEnum2.B;
MyFunc(MyEnum2.B);
break;
case MyEnum1.THREE:
state2 = MyEnum2.C;
MyFunc(MyEnum2.C);
break;
default:
break;
}
}
// Etcetera
}
state2 = whatever 分配发生故障。 (state2 是字段,不是属性)
【问题讨论】:
-
如果您可以发布对您有帮助的枚举定义。
-
您能否为问题添加更多上下文?也许是枚举的定义和 testVar 的定义,包括(私有、公共限定符)
-
你在赋值之前和查看过
testVar和MyEnum.TYPE_OF_ENUM的值吗?你能提供更多的背景信息吗? -
这项任务似乎大部分时间都有效。只有在
case MyEnum1.ONE:下的 else if 部分才会失败。
标签: c# enums variable-assignment