文章目录
问题反射获得的多余字段问题
问题是这样的,我要在枚举类型上面加上ShowName
的特性,这样就可以在编辑器里面显示友好的文本,而不是枚举的英文名称//该接口可以获得该枚举类型的所有值, 也是属于该UnitType类型的Enum.GetValues(typeof(UnitType))//该接口获得的是定义时的名称,例如None,Hero,Summonedvar names = Enum.GetNames(typeof(UnitType))//在System.Reflection命名空间下面有GetCustomAttribute<T>()Type curType = typeof(UnitType)var showNames = (from n in nameslet field = curType.GetField(n)let showName = field.GetCustomAttribute<ShowNameAttribute>()select showName.?Name??n).ToArray()
反射获得的多余字段
因为枚举类型的本质是上面这样的,所以通过反射获取所有字段的时候会有一个value
类型foreach(var field in typeof(UnitType).GetType().GetFields()){}
所以通过static|public对字段进行筛选也是可以的,这个链接就是这种做法
如果觉得《C# 通过反射获取枚举类型》对你有帮助,请点赞、收藏,并留下你的观点哦!