gpt4 book ai didi

c# - 什么可能导致分配不工作?

转载 作者:行者123 更新时间:2023-11-30 22:36:45 25 4
gpt4 key购买 nike

我正在用 C# 开发一个项目,出于某种原因,当我尝试为枚举变量赋值时,赋值没有发生。我会复制我的代码,但这实际上只是一个简单的任务。它是这样的:

testVar = MyEnum.TYPE_OF_ENUM;

其中 testVarMyEnum 类型。当我使用 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是字段,不是属性)

最佳答案

一种可能性是 setter 损坏的属性:

class C
{
private MyEnum foo = MyEnum.Something;
public MyEnum Foo
{
get { return foo; }
set { }
}

void DoSomething()
{
Foo = MyEnum.SomethingElse; // does nothing
}
}

关于c# - 什么可能导致分配不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6834441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com