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

C# GetType() 메서드로 열거형의 유형을 가져오는 방법

C#에서 열거형의 유형 확인하기

C#에서는 GetType() 메서드를 사용하여 열거형(enum)의 유형을 쉽게 가져올 수 있습니다. 이 메서드는 개체의 실제 런타임 형식을 반환하므로, 열거형 멤버가 어떤 열거형에 속하는지, 그리고 그 기본(underlying) 형식이 무엇인지 확인할 때 매우 유용합니다.

열거형 값 준비하기

먼저 서로 다른 열거형의 값을 담은 배열을 준비합니다.

Enum[] values = { ConsoleColor.Blue, DayOfWeek.Sunday};

이 배열에는 ConsoleColorDayOfWeek라는 두 가지 서로 다른 열거형의 멤버가 들어 있습니다.

GetType() 메서드로 유형 가져오기

각 열거형 값의 유형을 가져오려면 GetType() 메서드를 호출하기만 하면 됩니다.

Type enumType = val.GetType();

여기에 더해 Enum.GetUnderlyingType() 메서드를 함께 사용하면 해당 열거형의 기본 형식(예: Int32)까지 확인할 수 있습니다.

전체 예제 코드

다음은 열거형의 유형과 기본 형식을 화면에 표시하는 전체 예제입니다.

using System;
public class Demo {
   public static void Main() {
      Enum[] values = { ConsoleColor.Blue, DayOfWeek.Sunday};
      Console.WriteLine("{0,-5} {1, 10} {2,10}\n", "Member", "Enumeration", "UnderlyingType");
      foreach (var val in values)
      Info(val);
   }
   static void Info(Enum val) {
      Type enumType = val.GetType();
      Type underlyingType = Enum.GetUnderlyingType(enumType);
      Console.WriteLine("{0, -5} {1, 10} {2,10}", val, enumType.Name, underlyingType.Name);
   }
}

실행 결과

Member Enumeration UnderlyingType

Blue ConsoleColor Int32
Sunday DayOfWeek Int32

코드 설명

Main 메서드에서는 열거형 값들을 배열로 만든 뒤, 각 요소에 대해 Info 메서드를 호출합니다. Info 메서드 내부에서는 다음 작업이 수행됩니다.

  • val.GetType() — 해당 열거형 값의 실제 형식(ConsoleColor 또는 DayOfWeek)을 반환합니다.
  • Enum.GetUnderlyingType(enumType) — 열거형의 기본 형식(Int32)을 반환합니다.
  • 마지막으로 형식 지정 문자열 출력을 통해 멤버 이름, 열거형 이름, 기본 형식을 정렬하여 보여줍니다.

실행 결과에서 확인할 수 있듯이 두 열거형 모두 기본적으로 Int32를 기반으로 동작합니다.