C#의 Enum.Format 메서드는 지정된 열거형(enumerated type)의 값을 해당하는 문자열 표현으로 변환해 줍니다. 이때 출력 형식(format)을 함께 지정할 수 있는데, 예를 들어 d는 10진수(Decimal), x는 16진수(Hexadecimal)를 의미합니다.
먼저 다음과 같은 열거형이 선언되어 있다고 가정해 보겠습니다.
enum Stock { PenDrive, Keyboard, Speakers };멤버에 별도의 값을 지정하지 않으면 기본값이 순서대로 자동 할당(초기화)됩니다.
PenDrive = 0
Keyboard = 1
Speakers = 2
이제 예를 들어 "Keyboard"라는 이름에 해당하는 상수 값을 알아내고 싶다고 해보겠습니다. 먼저 열거형 변수를 다음과 같이 선언합니다.
Stock st = Stock.Keyboard;
그다음 아래와 같이 Enum.Format 메서드를 호출하면 Keyboard에 대응하는 상수 값을 얻을 수 있습니다.
Enum.Format(typeof(Stock), st, "d")
주요 형식 지정자
Enum.Format에서 자주 사용되는 형식 지정자는 다음과 같습니다.
- d 또는 D : 10진수(Decimal) 값으로 변환
- x 또는 X : 16진수(Hexadecimal) 값으로 변환
- g 또는 G : 정의된 이름이 있으면 이름으로, 없으면 10진수로 표시
- f 또는 F : 정의된 이름이 있으면 이름으로 표시
전체 예제 코드
using System;
class Demo {
enum Stock { PenDrive, Keyboard, Speakers };
static void Main() {
Stock st = Stock.Keyboard;
Console.WriteLine("Product I need is {0}", st);
Console.WriteLine("Product value: {0}", Enum.Format(typeof(Stock), st, "d"));
}
}
실행 결과
Product I need is Keyboard
Product value: 1
위 실행 결과에서 볼 수 있듯이, 열거형 변수를 그대로 출력하면 멤버 이름인 "Keyboard"가 표시되고, Enum.Format에 d 형식 지정자를 사용하면 해당 상수의 10진수 값인 "1"이 출력됩니다. 이처럼 Enum.Format 메서드를 활용하면 열거형 값을 다양한 형식의 문자열로 손쉽게 변환할 수 있습니다.