C#

열거형 (Enums)

잼잼재미 2023. 11. 10. 11:09

● 열거형이란?

 - 여러개의 상수를 하나의 컨테이너에서 관리하기 위해 사용하는 자료형

 

  열거형 특징?

 - 연관된 상수들을 명명해서 가독성이 좋음
 - 스위치문과의 호환성이 좋음
 - 열거형의 각 상수는 정수 값으로 지정

 

● 예시

enum MyEnum
{
    Value1,	// 0
    Value2,	// 1
    Value3	// 2
}

enum MyEnum
{
    Value1 = 10,
    Value2,	// 11
    Value3 = 20
}

// 사용
MyEnum enumValue = MyEnum.Value1;

switch(enumValue)
{
    case MyEnum.Value1:
        // Value1에 대한 처리
        break;
    case MyEnum.Value2:
        // Value2에 대한 처리
        break;
    case MyEnum.Value3:
        // Value3에 대한 처리
        break;
    default:
        // 기본 처리
        break;
}

 

※ 열거형 형변환

int intValue = (int)MyEnum.Value1;  // 열거형 값을 정수로 변환
MyEnum enumValue = (MyEnum)intValue;  // 정수를 열거형으로 변환

 * 열거형의 각 상수는 바로 int 값으르 사용할 수 없음

 

※ 입력 월 출력하기

// 월 열거형
public enum Month
{
    January = 1,
    February,
    March,
    April,
    May,
    June,
    July,
    August,
    September,
    October,
    November,
    December
}

// 처리하는 함수
static void ProcessMonth(int month)
{
    if (month >= (int)Month.January && month <= (int)Month.December)
    {
        Month selectedMonth = (Month)month;
        Console.WriteLine("선택한 월은 {0}입니다.", selectedMonth);
        // 월에 따른 처리 로직 추가
    }
    else
    {
        Console.WriteLine("올바른 월을 입력해주세요.");
    }
}

// 실행 예제
static void Main()
{
    int userInput = 7; // 사용자 입력 예시
    ProcessMonth(userInput);
}

 

※ 게임 사용 예시

// 게임 상태
enum GameState
{
    MainMenu,
    Playing,
    Paused,
    GameOver
}

// 방향
enum Direction
{
    Up,
    Down,
    Left,
    Right
}

// 아이템 등급
enum ItemRarity
{
    Common,
    Uncommon,
    Rare,
    Epic
}

 

'C#' 카테고리의 다른 글

콘솔 글자색 변경  (0) 2023.11.13
문자 앞뒤로 특정 문자 입력 (RightPad, LeftPad)  (0) 2023.11.13
인터페이스(Interface)  (0) 2023.11.09
out, ref 키워드  (0) 2023.11.08
제너릭  (0) 2023.11.08