
가독성: 열거형을 사용하면 일련의 연관된 상수들을 명명할 수 있다. 이를 통해 코드의 가독성이 향상되고, 상수를 사용할 때 실수로 잘못된 값을 할당하는 것을 방지할 수 있다.
자기 문서화: 열거형은 의미 있는 이름을 사용하여 상수를 명명할 수 있다. 이를 통해 코드의 가독성이 향상되며, 상수의 의미를 명확하게 설명할 수 있다.
스위치 문과의 호환성: 열거형을 사용하면 스위치 문에서 다양한 상수 값에 대한 분기를 쉽게 작성할 수 있어 유용하다.
enum MyEnum
{
Value1, // 0
Value2, // 1
Value3 // 2
}
enum MyEnum : byte // 정수형 자료형들을 지정할 수 있다. 예를 들어, byte, short, long 등
{
Value1 = 1,
Value2 = 2,
Value3 = 3
}
MyEnum myEnum = MyEnum.Value1;
enum MyEnum
{
Value1 = 10,
Value2, // 명시적으로 지정하지 않았으므로 Value1의 값에서 1 증가된 11이 할당된다.
Value3 = 20
}
int intValue = (int)MyEnum.Value1; // 열거형 값을 정수형으로 변환
MyEnum enumValue = (MyEnum)intValue; // 정수형 값을 열거형으로 변환
switch(enumValue)
{
case MyEnum.Value1:
// Value1에 대한 처리
break;
case MyEnum.Value2:
// Value2에 대한 처리
break;
case MyEnum.Value3:
// Value3에 대한 처리
break;
default:
// 기본 처리
break;
}
enum DaysOfWeek
{
Sunday,
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday
}
class Program
{
static void Main(string[] args)
{
DaysOfWeek day = DaysOfWeek.Monday;
Console.WriteLine("Today is " + day);
}
}
// 출력: Today is Monday
// Month 열거형
enum Month
{
January = 1,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
}
class Program
{
// 전달받은 정수형 값에 해당하는 월을 출력하는 메소드
static void ProcessMonth(int month)
{
// 전달받은 값이 Month 열거형의 유효한 범위인지 확인
if (month >= (int)Month.January && month <= (int)Month.December)
{
// 전달받은 값을 Month 열거형으로 변환하고 해당 월을 출력
Month selectedMonth = (Month)month;
Console.WriteLine("선택한 월은 {0}입니다.", selectedMonth);
}
else
{
Console.WriteLine("올바른 월을 입력해주세요.");
}
}
static void Main()
{
int userInput = 7; // 사용자 입력 예시
ProcessMonth(userInput);
}
}
// 출력: 선택한 월은 July입니다.
// 게임 상태
enum GameState
{
MainMenu,
Playing,
Paused,
GameOver
}
// 방향
enum Direction
{
Up,
Down,
Left,
Right
}
// 아이템 등급
enum ItemRarity
{
Common,
Uncommon,
Rare,
Epic
}