我有一个枚举,它是一个对象的成员变量。我不知道枚举的确切类型,只是它来自System.Enum
。我想设置枚举的基础数值。换句话说:设置System.Enum的底层值
Enum e;
// ...
e = 42; // Doesn't comple
这可能吗?它可以用反射来完成吗?
编辑1:枚举是更大的数据结构的一部分,所以使用Enum.ToObject()创建新值是不合适的。
编辑2:澄清枚举是一个对象的成员变量。
编辑3:由于一些评论者要求更多的上下文,所以继承了一个总结:我有一些通用代码应该将UI控件(文本框等)与对象数据模型中的相应字段相关联。当UI更改时,模型更新,反之亦然。我正在研究扩展它以在组合框和枚举之间映射;枚举将被设置为所选组合条目的索引。从枚举的基础值中设置选定的项目是微不足道的,但相反,这是问题发生的地方。我确信这是不可能的,但认为这值得提问。
你应该知道,即使你这样做,它也不会改变传入你的函数的Enum的值。你想做什么? – Random832
顺便说一句,它可能有助于澄清你的意思是“对枚举的引用”。为了直接引用该值,您需要知道该类型(即使它是通用方法中的“T”);否则,你可能使用了一个* boxed copy *的引用,而不是原来的值本身 –
这是生命宇宙和所有事物的答案!要使用枚举你需要知道他们的设计,你可以找到它。 Downvote浪费时间。 – MrFox