열거형(Enum, Enumeration)은 연도, 제품, 월, 계절처럼 서로 연관된 명명된 상수(named constants) 집합을 저장하기 위한 특수한 데이터 형식입니다. 코드에서 의미 있는 이름으로 값을 표현할 수 있어 가독성과 유지보수성을 크게 높여 줍니다.
열거형의 기본 동작 원리
열거형 상수의 기본값은 0부터 시작하여 선언된 순서대로 1씩 증가합니다. 예를 들어 첫 번째 상수는 0, 두 번째는 1, 세 번째는 2의 값을 갖습니다. 물론 필요하다면 각 상수에 직접 임의의 정수 값을 지정할 수도 있습니다.
열거형은 고정된 상수 집합을 가지므로 foreach 문이나 Enum.GetValues() 메서드를 사용해 손쉽게 순회(traverse)할 수 있다는 장점도 있습니다.
열거형 선언 방법
열거형은 다음과 같이 enum 키워드를 사용해 선언합니다.
public enum Vehicle { Car, Bus, Truck }
위 코드에서 Vehicle 열거형은 Car(0), Bus(1), Truck(2)이라는 세 개의 상수를 가집니다.
전체 예제 코드
아래 예제에서는 열거형 멤버를 int로 캐스팅하여 실제 저장된 정수 값을 확인합니다.
using System;
public class Demo {
public enum Vehicle { Car, Bus, Truck }
public static void Main() {
int a = (int)Vehicle.Car;
int b = (int)Vehicle.Bus;
int c = (int)Vehicle.Truck;
Console.WriteLine("Car = {0}", a);
Console.WriteLine("Bus = {0}", b);
Console.WriteLine("Truck = {0}", c);
}
}
실행 결과
Car = 0 Bus = 1 Truck = 2
정리
C#의 열거형은 관련된 상수들을 하나의 이름 아래 묶어 관리할 수 있는 강력한 도구입니다. 기본값은 0부터 시작하며, 명시적으로 값을 지정하지 않으면 자동으로 1씩 증가합니다. 매직 넘버(magic number) 사용을 줄이고 코드의 의도를 명확하게 드러내고 싶을 때 열거형을 적극 활용해 보세요.