แน่นอนคุณสามารถพูดได้เช่นคุณต้องการใช้ค่าDescriptionAttribue
ของคุณenum
:
using System.ComponentModel.DataAnnotations;
public enum Duration
{
[Description("Eight hours")]
Day,
[Description("Five days")]
Week,
[Description("Twenty-one days")]
Month
}
ตอนนี้คุณต้องการที่จะทำสิ่งต่างๆเช่น:
Duration duration = Duration.Week;
var description = duration.GetDescription(); // will return "Five days"
วิธีการขยายของคุณGetDescription()
สามารถเขียนได้ดังนี้:
using System.ComponentModel;
using System.Reflection;
public static string GetDescription(this Enum value)
{
FieldInfo fieldInfo = value.GetType().GetField(value.ToString());
if (fieldInfo == null) return null;
var attribute = (DescriptionAttribute)fieldInfo.GetCustomAttribute(typeof(DescriptionAttribute));
return attribute.Description;
}