class="brush:csharp;gutter:true;">static class Program { enum Orientation { [DescriptionAttribute("东")] East, [DescriptionAttribute("南")] South, [DescriptionAttribute("西")] West, [DescriptionAttribute("北")] North } static string GetDescription<T>(this T value) { var memInfo = value.GetType().GetMember(value.ToString()); var attributes = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false).Cast<DescriptionAttribute>(); if (attributes.Any()) return attributes.First().Description; return string.Empty; } static void Main() { foreach (var s in Enum.GetValues(typeof(Orientation))) { Console.WriteLine("值:{0}\t\t说明:{1}", s.ToString(), s.GetDescription()); } Console.Read(); } }