什么可能导致作业无法完成?

2024-03-24

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

testVar = MyEnum.TYPE_OF_ENUM;

where testVar属于类型MyEnum。当我使用 VisualStudio 调试器单步调试这一行时,我可以看到testVar不会改变。什么可能导致任务失败?

EDIT:

好的,我将提供更多背景信息。

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是一个字段,而不是一个属性)


一种可能性是设置器损坏的财产:

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

    void DoSomething()
    {
        Foo = MyEnum.SomethingElse; // does nothing
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么可能导致作业无法完成? 的相关文章

随机推荐