Get Enum Description value in C#
Enum : According to Microsoft Docs (Link), the enum keyword is used to declare an enumeration, a distinct type that consists of a set of named constants called the enumerator list.
Enum Description Value: This can be achieve by creating an extension method over the Enum data type.
using System;
using System.ComponentModel;
using System.Reflection;
namespace TestApp
{
public enum Days
{
[Description("Monday")]
MON,
[Description("Tuesday")]
TUE,
[Description("Wednesday")]
WED,
[Description("Thursday")]
THU,
[Description("Friday")]
FRI,
[Description("Saturday")]
SAT,
[Description("Sunday")]
SUN,
}
public static class EnumExtension
{
public static string GetDescriptionValue<T>(this T value)
{
if
(value == null)
throw new ArgumentNullException("value");
string description = value.ToString();
FieldInfo fieldInfo = value.GetType().GetField(description);
DescriptionAttribute[] descAttributes = (DescriptionAttribute[])fieldInfo.GetCustomAttributes(
typeof(DescriptionAttribute), false);
if
(descAttributes != null &&
descAttributes.Length > 0)
return descAttributes[0].Description;
else
return description;
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Days.MON.GetDescriptionValue<Days>());
Console.WriteLine(Days.TUE.GetDescriptionValue<Days>());
Console.WriteLine(Days.SUN.GetDescriptionValue<Days>());
Console.ReadLine();
}
}
}
Comments
Post a Comment