C#中设置运行时枚举值有没有办法在运行时改变枚举值?例如,我有以下类型枚举MyType{TypeOne,//=5atruntimeTypeTwo//=3atruntime}我想在运行时将5设置为TypeOne,将3设置为TypeTwo。只需参考此处的MSDN帮助以及稳健编程部分中的此处-与任何常量一样,对枚举的各个值的所有引用都会在编译时转换为数字文字。因此,您需要重新调整您的Enum想法并相应地使用它。回答你的问题-不,这是不可能的。正如其他人指出的那样,答案是否定的。但是,您可以重构代码以使用类:publicsealedclassMyType{publicintTypeOne{get;放;}publicintTypeTwo{得到;放;}}...varmyType=newMyType{TypeOne=5,TypeTwo=3};或该主题的变体。枚举被编译为常量静态字段,它们的值被编译到程序集中,所以不,它们不可能改变它们。(它们的常量值甚至被编译到你引用它们的地方。)枚举这个枚举:enumfoo{Value=3}那么你可以得到这样的字段和他们的信息:大家会多关注一下——varfield=typeof(foo).GetField("Value",System.Reflection.BindingFlags.Static|System.Reflection.BindingFlags.Public);安慰。WriteLine(field.GetValue(null));Console.WriteLine(field.Attributes);本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
