2013-03-17 75 views

回答

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(); 

Source

+0

我不明白爲什麼它是如此複雜的枚舉描述屬性。沒有內置函數來訪問它嗎? – CJ7 2013-03-17 08:13:27

+0

據我所知沒有。 – 2013-03-17 08:17:49