在C#中设置运行时的枚举值

Mas*_*oud 11 c# enums runtime

有什么办法可以enum在运行时更改值吗?

例如,我有以下类型

enum MyType
{
   TypeOne, //=5 at runtime 
   TypeTwo  //=3 at runtime
}
Run Code Online (Sandbox Code Playgroud)

我想在运行时设置5到TypeOne3和3 TypeTwo.

Ste*_*edy 10

正如其他人所指出的那样,答案是否定的.

但是,您可以重构代码以使用类:

public sealed class MyType
{
   public int TypeOne { get; set; }
   public int TypeTwo { get; set; }
}

...

var myType = new MyType { TypeOne  = 5, TypeTwo = 3 };
Run Code Online (Sandbox Code Playgroud)

或该主题的变化.

  • 提供替代方案使其成为一个很好的答案. (3认同)

NP3*_*NP3 7

这里只需参考MSDN帮助

  • 枚举类型(也称为枚举或枚举)提供了一种有效的方法来定义可以分配给变量的一组命名的整数常量.

还在这里

在强健编程部分 - 与任何常量一样,对枚举的各个值的所有引用在编译时都转换为数字文字.

因此,您需要重新调整您的想法Enum并相应地使用它.

回答你的问题 - 不,这是不可能的.