C#通过反射拿到枚举,但是里面有个“value__”,怎么办?
1 using System; 2 using UnityEngine; 3 using System.Reflection; 4 public enum ExampleEnum 5 { 6 Value1, 7 Value2 8 } 9 class Program :MonoBehaviour 10 { 11 void Start() 12 { 13 Type enumType = typeof(ExampleEnum); 14 FieldInfo[] fields = enumType.GetFields(); 15 16 foreach (var field in fields) 17 { 18 Debug.LogError(field.Name); 19 } 20 } 21 }
这个样会输出:
有个value__,很烦人。
把
FieldInfo[] fields = enumType.GetFields();
改成
FieldInfo[] fields = enumType.GetFields(BindingFlags.Public | BindingFlags.Static);
就会如下图输出,没有value__了: