Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 열거형(Enum) Format 메서드 – 열거형 값을 문자열로 변환하는 방법

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.Formatd 형식 지정자를 사용하면 해당 상수의 10진수 값인 "1"이 출력됩니다. 이처럼 Enum.Format 메서드를 활용하면 열거형 값을 다양한 형식의 문자열로 손쉽게 변환할 수 있습니다.