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

Popular posts from this blog

iframe vs embed vs object in HTML 5

Constructor in c#

What is the need of method overriding ???