【发布时间】:2012-01-23 21:56:26
【问题描述】:
C# 是否提供了一种使用反射从头开始创建Enum 类型的方法?
假设,我有一个strings:{"Single", "Married", "Divorced"} 的集合,并且我愿意在运行时构建以下枚举类型:
enum PersonStatus
{
Single, Married, Divorced
}
这有可能吗?
【问题讨论】:
-
enum是一个合约,在runtime创建它是什么意思? -
@gdoron 枚举可以在运行时被解释和使用,因此在运行时发出它们当然不是不可能的,尽管 Chris 的回答在这种情况下真正有用。跨度>
-
@JonHanna。请告诉我一个需要它的场景,因为在这种场景中它不是!
-
@gdoron 我为什么要这样做?我说了可以,我说了这里不需要。
-
如果您的对象只有有限数量的值,尤其是在值的数量相当少的情况下,则使用枚举。使用枚举的好处是在编译时已经检查过您没有为枚举类型的对象分配无效值。假设您有一些硬件,其参数的值数量有限,您只能在运行时检测到。使用 enumbuilder 您可以在编译时检查在运行时不会分配无效值,因为您只能将从 enumtype 获得的值分配为允许值
标签: c# reflection enums runtime