<分区>
我遇到了一些对我来说很奇怪的事情,但同时由于我不知道的原因也有一些道理。
我有这个枚举:
[Flags] public enum Flags { RemoveQuoteMarks = 1, t1 = 2, t2 = 4, t3 = 8, t4 = 16, t5 = 32, t6 = 64, t7 = 128 }
以前,我没有手动设置枚举值,它们从 0 开始索引并标准地增加 1,对吗?
好吧,当我尝试加载这个字符串时,我注意到了奇怪的行为:
string value = "t1, t3, t4, t7";
并使用以下方法解析它:
Flags flags = (Flags)Enum.Parse(typeof(Flags), value);
结果只是“t7”,所以我做了一些研究,注意到很多其他人使用手动索引,其中每个枚举值都比之前的值翻倍(例如“t3 = 8”、“t4 = 16”) ,所以我将这条规则应用到我的身上,它起作用了,我解析的枚举现在显示为:
t1, t3, t4, t7
根据需要,为什么我必须像那样手动配置我的枚举值?