【发布时间】:2016-08-12 10:02:14
【问题描述】:
假设我有这个枚举:
public enum MyEnum{
ValueOne = 1,
ValueTwo = 2,
ValueThree = 3
}
然后是这个字段/变量:
public MyEnum myEnumInstance = MyEnum.ValueTwo;
我需要通过反射从另一个类获取myEnumInstance的name。
我试过了:
myClassInstance.GetType().GetField("myEnumInstance").GetValue(myClassInstance)
无论myEnumInstance 设置为什么,它总是返回ValueOne。
如何通过反射获取枚举字段的字符串值/名称?
【问题讨论】:
-
@FiringSquadWitness 不,不是重复的,我的问题完全不同。我无法从一开始就获得价值
-
我仍然不清楚你为什么需要反思......为什么不
myClassInstance.myEnumInstance.ToString()? -
@JasonP 很难解释,但基本上我有一个库存系统,其中包含针对不同类型物品的几个不同类别。我正在制作一个编辑器来显示所有 itme 不同类的字段。由于我将其编程为通用且没有任何特定于类的代码,因此我需要使用反射来访问字段。我的系统适用于除枚举之外的所有内容。
-
@KeithM 请参阅this fiddle - 它会产生您想要的结果。我倾向于投票关闭它,因为它无法复制,因为看起来问题确实存在于与问题完全无关的某个地方
标签: c# reflection enums