C#/데이터다루기

[C#] 열거형(enum)

도도돋치 2025. 4. 24. 11:35
Contents 접기
728x90

 

열거형(Enum)은 이름이 붙은 상수들의 집합을 정의할 수 있는 데이터 형식이다.
값에 의미 있는 이름을 부여하여 코드의 가독성 유지보수성을 높이는 데 유용하다.

 

열거형이란?

  • 기본적으로 정수형 상수들의 집합
  • 관련된 값들을 그룹화할 수 있음
  • 기본 값은 int이며, 0부터 시작

 

기본 문법

enum 요일 {
    월, 화, 수, 목, 금, 토, 일
}

이렇게하면, 값을 할당하지 않아도 기본적으로 월=0, 화=1, ...이런식으로 0부터 자동으로 값이 할당된다.

 

- 명시적으로 값 지정도 가능하다.

enum 상태 {
    대기 = 1,
    진행중 = 2,
    완료 = 3
}

 

 

📝 추가 사용예시

enum 상태 {
    대기,
    진행중,
    완료
}

class Program {
    static void Main() {
        상태 현재상태 = 상태.진행중;
        Console.WriteLine(현재상태);             // 출력: 진행중
        Console.WriteLine((int)현재상태);        // 출력: 1, int로 캐스팅
    }
}

 

 

enum과 switch문 함께 사용

enum은 switch 문과 같이썼을때 효율이 좋다. 왜냐면 switch문은 숫자와 같은 값일때 실행되는데, 명시적으로 숫자가 어떤 것인지 enum을 통해 정해둘 수 있기 때문이다.

void 상태확인(상태 상태값) {
    switch (상태값) {
        case 상태.대기:
            Console.WriteLine("작업을 기다리는 중입니다.");
            break;
        case 상태.진행중:
            Console.WriteLine("작업이 진행 중입니다.");
            break;
        case 상태.완료:
            Console.WriteLine("작업이 완료되었습니다.");
            break;
    }
}

 

enum캐스팅 예시

1. enum  int (숫자로 변환)

enum 요일 {
    월, 화, 수, 목, 금, 토, 일
}

요일 today = 요일.수;
int todayValue = (int)today;

Console.WriteLine(todayValue);  // 출력: 2

요일.수는 내부적으로 2라는 값을 가지므로 (int)를 통해 숫자로 변환 가능

 

2. int  enum (숫자 → 열거형 값)

int value = 3;
요일 day = (요일)value;

Console.WriteLine(day);  // 출력: 목

정수 3 요일 enum 타입으로 캐스팅하면, 요일.목이 출력

 

 

정리

✔ enum은 관련된 상수 값을 하나의 이름으로 그룹화

✔ 코드의 가독성 명확성을 높여줌

 switch-case, 조건문 등과 함께 사용하면 코드 관리가 쉬움

✔ 숫자 대신 의미 있는 이름으로 코딩 가능

728x90

'C# > 데이터다루기' 카테고리의 다른 글

[C#] 제네릭(Generic)  (0) 2025.05.26
[C#] C#에서 new()만 써도 된다?  (0) 2025.05.20
[C#] 문자열 처리 기능 및 메서드  (0) 2025.04.14
[C#] 리터럴(literal)  (0) 2025.04.14
[C#] Escape Sequence  (0) 2025.04.14