我正在使用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
賦值失敗。 (狀態2是一個字段,而不是一個屬性)
如果你能張貼woudl幫助您的枚舉定義。 –
你可以給這個問題添加更多的上下文嗎?可能是enum的定義和testVar的定義,包括(private,public qualifiers) – Jaime
在分配之後的**和**之前,你看過'testVar'和'MyEnum.TYPE_OF_ENUM'的值嗎?你能提供更多的背景嗎? – Crisfole