[C# 문법] C# Enum Description 사용 하기

참조

소개

안녕하세요. 오늘은 C# 문법에서 Enum 에 대해서 알려 드리려고 합니다. Enum은 열거형으로서 기본 정수 숫자 형식의 명명된 상수 집합에 의해 정의되는 값 형식 입니다. 이런 Enum에서 Description 을 지정해서 해당 Description을 유용하게도 이용할 수 있어서 해당 방법에 대해서 여러 분들에게 소개해 드리고자 합니다.

Enum Description 방법

  • 참고로 아래 소스코드는 제가 순수 작성한 것이 아니고, Stackoverflow에 있는 것을 참조하였습니다!
  • 그럼 Enum 에서 Description 사용 방법 예제 코드를 보여 드리도록 하겠습니다.
using System;
using System.ComponentModel;
using System.Reflection;

namespace ConsoleApp7
{
    public enum MyEnum
    {
        APPLE = 1,
        [Description("Here is BANANA")]
        BANANA = 2,
        [Description("Last fruit is waterMelon")]
        WATERMELON = 3
    }

    static class Program
    {
        static void Main(string[] args)
        {
            string enumDesc = MyEnum.BANANA.DescriptionAttr();
            string lastDesc = MyEnum.WATERMELON.DescriptionAttr();

            Console.WriteLine($"{enumDesc}");
            Console.WriteLine($"{lastDesc}");
        }

        public static string DescriptionAttr<T>(this T source)
        {
            FieldInfo fi = source.GetType().GetField(source.ToString());

            DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes(
                typeof(DescriptionAttribute), false);

            if (attributes != null && attributes.Length > 0) return attributes[0].Description;
            else return source.ToString();
        }
    }
}

실행 결과

Here is BANANA
Last fruit is waterMelon
  • 실행 결과, [Description("Here is BANANA")] 이렇게 Description 안에 쓰여져 있는 문자열을 가져와 출력한 것을 확인할 수 있습니다.
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY