열거형(Enum)은 연도, 제품, 월, 계절 등과 같이 이름이 지정된 상수 집합을 하나의 이름 아래에 묶어 저장할 수 있는 특별한 값 형식(Value Type)입니다.
Enum의 각 상수는 별도로 값을 지정하지 않으면 기본적으로 0부터 시작하여 1씩 순차적으로 증가합니다. 열거형은 고정된 상수 집합을 가지므로 코드의 가독성을 높여주고, foreach 루프 등을 통해 손쉽게 순회(traversal)할 수 있다는 장점이 있습니다.
하지만 기본값에만 의존할 필요는 없습니다. 첫 번째 멤버에 원하는 값을 직접 할당하면 시작 인덱스를 자유롭게 변경할 수 있으며, 이후 멤버들은 해당 값부터 다시 1씩 증가합니다.
아래 예제에서는 기본값인 0 대신 사용자 지정 값 20을 시작 값으로 설정하는 방법을 보여줍니다.
예제 코드
using System;
public class Demo {
public enum Vehicle { Car = 20, Motorcycle, Bus, Truck }
public static void Main() {
int a = (int)Vehicle.Car;
int b = (int)Vehicle.Motorcycle;
int c = (int)Vehicle.Bus;
int d = (int)Vehicle.Truck;
Console.WriteLine("Car = {0}", a);
Console.WriteLine("Motorcycle = {0}", b);
Console.WriteLine("Bus = {0}", c);
Console.WriteLine("Truck = {0}", d);
}
}실행 결과
Car = 20 Motorcycle = 21 Bus = 22 Truck = 23
위 결과에서 확인할 수 있듯이, 첫 번째 멤버인 Car에 20을 할당하면 나머지 멤버인 Motorcycle, Bus, Truck은 자동으로 21, 22, 23의 값을 갖게 됩니다. 이처럼 열거형에 사용자 지정 값을 활용하면 실제 비즈니스 로직의 코드 번호나 데이터베이스 값과 매핑할 때 매우 유용하게 사용할 수 있습니다.