C# 열거형(Enum) 구문 분석 개요
C#에서 Enum.Parse() 메서드는 열거형 상수의 이름 또는 숫자 값을 나타내는 문자열을 이에 대응하는 열거형 객체로 변환해 주는 기능입니다. 예를 들어 사용자 입력으로 받은 문자열 "Car"를 실제 열거형 값으로 바꿔야 할 때 유용하게 사용됩니다.
열거형 선언하기
먼저 다음과 같이 차량 종류를 나타내는 열거형을 선언합니다.
enum Vehicle { Car, Bus, Truck, Motobike };Enum.Parse()와 GetNames() 활용하기
열거형에 정의된 모든 이름을 가져오려면 Enum.GetNames() 메서드를 반복문과 함께 사용하면 됩니다. 그런 다음 각 이름을 Enum.Parse() 메서드로 파싱하여 해당하는 열거형 값을 얻을 수 있습니다.
Enum.Parse(typeof(Vehicle), v)
여기서 첫 번째 인자는 대상 열거형의 타입(typeof(Vehicle)), 두 번째 인자는 변환할 문자열입니다.
전체 예제 코드
using System;
public class Demo {
enum Vehicle { Car, Bus, Truck, Motobike };
public static void Main() {
Console.WriteLine("열거형 목록...");
foreach (string v in Enum.GetNames(typeof(Vehicle))) {
Console.WriteLine("{0} = {1:D}", v, Enum.Parse(typeof(Vehicle), v));
}
Console.WriteLine();
}
}실행 결과
열거형 목록... Car = 0 Bus = 1 Truck = 2 Motobike = 3
참고 사항
파싱하려는 문자열이 열거형에 존재하지 않는 경우 Enum.Parse()는 ArgumentException 예외를 발생시킵니다. 따라서 유효성이 보장되지 않은 입력을 처리할 때는 예외를 던지지 않고 bool 값을 반환하는 Enum.TryParse() 메서드를 사용하는 것이 더 안전합니다.