-3

DescriptionAttibuteを使用して次のことを達成するにはどうすればよいenumsですか? 列挙値のスペースに注意してください。

public enum PersonGender
    {
        Unknown = 0,
        Male = 1,
        Female = 2,
        Intersex = 3,
        Indeterminate = 3,
        Non Stated = 9,
        Inadequately Described = 9
    }
4

1 に答える 1

3

たとえば、次のように使用できます。

それは私たちの列挙型です:

public enum MyEnum
{
   [Description("Description for Foo")]
   Foo,
   [Description("Description for Bar")]
   Bar
}

そして、属性を取得するためのメソッド。

public static string GetDescription(this Enum value)
{
    Type type = value.GetType();
    string name = Enum.GetName(type, value);
    if (name != null)
    {
        FieldInfo field = type.GetField(name);
        if (field != null)
        {
             DescriptionAttribute attr =
                    Attribute.GetCustomAttribute(field,
                    typeof(DescriptionAttribute)) as DescriptionAttribute;
              if (attr != null)
              {
                   return attr.Description;
              }
        }
    }
    return null;
}

そして、あなたは説明を得ることができます:

  MyEnum x = MyEnum.Foo;
  string description = x.GetDescription();

ソース

于 2013-03-17T08:10:12.617 に答える