value__ C# 中的枚举中定义的内容

本文关键字:定义 枚举 value | 更新日期: 2023-09-27 18:30:27

这里可能有什么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();
    }
  }
}

value__ C# 中的枚举中定义的内容

你可以在这里找到更多。海报甚至有示例代码,应该可以让你解决问题......只需插入 BindingFlags.Public |BindingFlags.Static 在 GetFields() 的括号之间。

通过使用反思,我认为我会占上风并控制我的枚举困境。遗憾的是,在枚举类型上调用 GetFields 会将一个名为 value__ 的额外条目添加到返回的列表中。浏览完 Numum 的反编译后,我发现 value__ 只是枚举用来保存所选成员值的特殊实例字段。我还注意到实际的枚举成员确实被标记为静态。因此,要解决此问题,您需要做的就是调用 GetFields,并将 BindingFlags 设置为仅检索公共静态字段