您的位置:首页 > 编程语言 > C#

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

2017-11-03 18:04 204 查看
通过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));
else
Debug.Log(fields[i]);
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# 反射 枚举