What value__
可能在这里?
value__
MSN
ICQ
YahooChat
GoogleTalk
我运行的代码很简单:
namespace EnumReflection
{
enum Messengers
{
MSN,
ICQ,
YahooChat,
GoogleTalk
}
class Program
{
static void Main(string[] args)
{
FieldInfo[] fields = typeof(Messengers).GetFields();
foreach (var field in fields)
{
Console.WriteLine(field.Name);
}
Console.ReadLine();
}
}
}
你可以找到更多here https://web.archive.org/web/20181119155348/http://www.distribucon.com/blog/GettingMembersOfAnEnumViaReflection.aspx。海报甚至还提供了示例代码,可以帮助您解决问题......只需插入BindingFlags.Public | BindingFlags.Public | BindingFlags.Static在 GetFields() 的括号之间。
通过使用反射,我认为我会占据上风并控制我的枚举问题。不幸的是,在枚举类型上调用 GetFields 会在返回的列表中添加一个名为 value__ 的额外条目。在浏览了 Enum 的反编译后,我发现 value__ 只是枚举用来保存所选成员的值的特殊实例字段。我还注意到实际的枚举成员确实被标记为静态。因此,要解决此问题,您所需要做的就是调用 GetFields 并将 BindingFlags 设置为仅检索公共静态字段
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)