枚举类型仅在运行时已知时如何枚举?
作者:互联网
我在stackoverflow上找到了此答案以枚举某种类型的枚举:
var values = (SomeType[])Enum.GetValues(typeof(SomeType));
如果我对枚举类型进行硬编码,这将非常有效.但是我需要能够在运行时设置类型.我尝试了以下操作,但这不起作用:
var values = (typeof(T)[])Enum.GetValues(typeof(T));
解决方法:
您的T已经是Type类型.无需使用另一种typeof.一个简单的T []强制转换就足够了:
T[] values = (T[]) Enum.GetValues(typeof(T));