[C# 문법] C# Enum Description 사용 하기
- C#/C# 문법
- 2021. 8. 13. 08:04
참조
소개
안녕하세요. 오늘은 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
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] C# 대/소문자 구문 없이 문자열 비교하기 (0) | 2021.08.14 |
---|---|
[C# 문법] C# LINQ GroupBy 이용하여 최대값 가져오기 (0) | 2021.08.13 |
[C# 문법] C# Linq 지연실행 (0) | 2021.08.10 |
[C# 문법] List<T> 클래스와 람다식 조합 (4) | 2021.08.06 |
[C# 문법] C# Linq Zip 메서드 (0) | 2021.08.04 |
이 글을 공유하기