using System.ComponentModel;
public static void Main(string[] commandString)
Console.WriteLine(Status.Bad.Description());
Console.WriteLine(Status.Good.Description());
Console.WriteLine(Status.Unknown.Description());
[Description("Bad<angryface>")]
public static class EnumExt
public static string Description<T>(this T source)where T : struct, IConvertible
throw new ArgumentException("T must be an enumerated type");
var fi = source.GetType().GetField(source.ToString());
var attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof (DescriptionAttribute), false);
return attributes.Length > 0 ? attributes[0].Description : source.ToString();