C# 열거형 GetName() 메서드란?
C#에서 Enum.GetName() 메서드는 열거형(Enumeration)에 정의된 상수의 이름을 반환합니다. 특정 상수 값에 해당하는 문자열 이름을 손쉽게 조회할 수 있어, 로그 출력이나 디버깅 작업 시 매우 유용하게 활용됩니다.
열거형 선언하기
먼저 다음과 같이 열거형을 선언해 보겠습니다.
enum Stock { Appliance, Clothing, Footwear };
열거형의 각 상수는 기본적으로 0부터 시작하는 정수 값과 자동으로 연결됩니다. 즉, 위 예제에서 Appliance는 0, Clothing은 1, Footwear는 2에 해당합니다.
GetName() 메서드 사용법
Enum.GetName() 메서드를 사용하면 상수의 정수 값을 지정하여 그에 대응하는 개별 이름을 가져올 수 있습니다.
Enum.GetName(typeof(Stock), 1)
위 코드는 Stock 열거형에서 값이 1인 상수의 이름, 즉 "Clothing"을 반환합니다. 첫 번째 인자에는 열거형의 타입(typeof 사용), 두 번째 인자에는 조회할 상수의 값을 전달하면 됩니다.
예제
전체 예제 코드를 통해 동작 방식을 확인해 보겠습니다.
using System;
class Demo {
enum Stock { Appliance, Clothing, Footwear };
static void Main() {
Console.WriteLine("두 번째 재고 카테고리 = {0}", Enum.GetName(typeof(Stock), 1));
Console.WriteLine("세 번째 재고 카테고리 = {0}", Enum.GetName(typeof(Stock), 2));
}
}
실행 결과
두 번째 재고 카테고리 = Clothing 세 번째 재고 카테고리 = Footwear
정리 및 참고 사항
Enum.GetName() 메서드의 기본 형식은 다음과 같습니다.
public static string? GetName(Type enumType, object value);
- 첫 번째 매개변수
enumType: 이름을 조회할 열거형의 Type 객체입니다. - 두 번째 매개변수
value: 조회할 상수의 값으로, 정수 또는 열거형 멤버 자체를 전달할 수 있습니다. - 유효하지 않은 값이나 열거형이 아닌 타입을 전달하면 ArgumentException이 발생할 수 있습니다.
- .NET 5 이상에서는 제네릭 버전인
Enum.GetName<TEnum>(TEnum value)도 사용할 수 있어,typeof호출 없이 더 간결하게 작성 가능합니다.
이처럼 GetName() 메서드를 활용하면 열거형의 숫자 값을 의미 있는 이름으로 변환하여 코드의 가독성과 유지보수성을 높일 수 있습니다.