rel*_*sis 4 c# enums switch-statement
我有一个枚举和一个基于该枚举的switch语句,如下所示:
public enum MyEnum
    {
        VAL1,
        VAL2,
        VAL3,
        ONE = 1,
        TWO = 2
    }
和开关:
switch ((MyEnum)Enum.Parse(typeof(MyEnum), input.ToUpper()))
        {
            case MyEnum.VAL1:
                Console.WriteLine("val1");
                break;
            case MyEnum.VAL2:
                Console.WriteLine("val2");
                break;
            case MyEnum.VAL3:
                Console.WriteLine("val3");
                break;
            case MyEnum.ONE:
                Console.WriteLine("1");
                break;
            default:
                Console.WriteLine("default");
                break;
        }
其中input是一个字符串.我遇到的问题是我有编译器错误,
标签'case 1:'已经出现在switch语句中
我发现在枚举中首先移动'ONE'元素可以解决问题,但我的问题是为什么会发生这种情况?
好吧,因为当你有:
public enum MyEnum
    {
        VAL1,
        VAL2,
        VAL3,
        ONE = 1,
        TWO = 2
    }
你基本上有:
public enum MyEnum
    {
        VAL1 = 0,
        VAL2 = 1,
        VAL3 = 2,
        ONE = 1,
        TWO = 2
    }
你现在看到问题出在哪里了?您需要为它们分配不同的值.
| 归档时间: | 
 | 
| 查看次数: | 97 次 | 
| 最近记录: |