C#通过反射获取枚举值列表

来源:互联网 发布:黄梅戏软件 编辑:程序博客网 时间:2024/06/16 06:28

通过Type.GetFields(BindingFlags.Static)获取枚举值列表,然后通过FieldInfo.GetValue(null)就能获取到值,注意是传入null,像获取静态值和常量那样。

返回的值可以直接强转为int,因为枚举的基础类型就是int。

如果获取所有的字段信息,会发现里面有个System.Int32 value__,他是个隐藏的变量,用来存储枚举的实际值。这也说明,枚举的基础类型是int


public enum MyTestEnum{A = 0,B = 5,C = 100,}
FieldInfo[] fields = typeof(MyTestEnum).GetFields();for(int i = 0; i < fields.Length; i++){if(i > 0)Debug.Log(fields[i] + "--->" + (int)fields[i].GetValue(null));elseDebug.Log(fields[i]);}






原创粉丝点击