肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > C# 通过反射获取枚举类型

C# 通过反射获取枚举类型

时间:2024-03-04 14:56:33

相关推荐

文章目录

问题反射获得的多余字段

问题

问题是这样的,我要在枚举类型上面加上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# 通过反射获取枚举类型》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。