namespace EnumDescription
{
class Program
{
static void Main(string[] args)
{
TrafficLamp trafficLamp = TrafficLamp.Red;
Console.WriteLine(trafficLamp.ToString()); //Red
Console.WriteLine(GetEnumDescription(trafficLamp)); //you cannot cross the road
Console.WriteLine((int)trafficLamp); //0
Console.ReadLine();
}
public static String GetEnumDescription(Enum e)
{
FieldInfo enumInfo = e.GetType().GetField(e.ToString());
DescriptionAttribute[] EnumAttributes = (DescriptionAttribute[])enumInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
if (EnumAttributes.Length > 0)
{
return EnumAttributes[0].Description;
}
return e.ToString();
}
}
public enum TrafficLamp
{
[Description("You cannot cross the road.")]
Red = 0,
Green,
Yellow
}
}