緣起:
看專案的程式碼時,看到同事有為他自訂的列舉設定
DescriptionAttribute,還有寫個 Method 可以取得此列舉 DescriptionAttribute 的
Description,覺得這東西看起來很實用,所以就想抄起來。
程式碼:
直接放程式碼,反正我只是要知道可以怎麼寫就好,而且我功力不足,不知道怎麼講解
XD。要注意的就,需要引入 System.ComponentModel 跟 System.Reflection
using System;
using System.ComponentModel;
using System.Reflection;
namespace Test
{
public enum TestEnum
{
[Description("狗")]
dog=1,
[Description("貓")]
cat=2,
}
internal class Program
{
static void Main(string[] args)
{
Console.WriteLine(GetDescription(TestEnum.dog)); //狗
Console.WriteLine(GetDescription(TestEnum.cat)); //貓
Console.ReadKey();
}
public static string GetDescription(Enum value)
{
FieldInfo fi = value.GetType().GetField(value.ToString());
DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
return attributes.Length > 0 ? attributes[0].Description : value.ToString();
}
}
}
沒有留言:
張貼留言