C# - 열거형

2025. 6. 21. 16:05Programming Language/C#

반응형

열거형(enum)은 상수들의 집합을 정의하는데 사용되고 각 항목은 숫자값으로 자동으로 매핑된다.

이는 숫자에 명확한 이름을 붙여서 의미를 명확하게 표현하도록 하기 위한 기능이다.

 

열거형의 정의

열거형은 enum이라는 키워드를 사용해서 정의를 한다.

enum 열거형명
{
    멤버1,
    멤버2,
    ...
    멤버n
}

 

이렇게 만든 열거형은 내부에 선언한 멤버의 순서대로 0부터 값이 할당된다.

열거형.멤버1 => 0
열거형.멤버2 => 1
열거형.멤버3 => 2
      ...
열거형.멤버n => n-1

 

열거형을 정의할때는 직접 값을 정해줄 수 도 있고 정하지 않을 수도 있다.

enum 열거형명
{
    멤버1 = 1,
    멤버2 = 10,
    멤버3 = 30
}

만약 멤버의 값을 아래와 같이 중간에만 지정하는 경우는 

enum 열거형명
{
    멤버1,
    멤버2 = 10,
    멤버3
}

값을 지정하기 이전엔 0부터 값을 매기고 값을 지정한 이후는 지정된 값 부터 1씩 더해가면서 값을 지정한다

 

그리고 이 열거형을 선언한 후에 Console.WriteLine()의 안에 요소를 넣는 경우

Console.WriteLine(열거형.멤버1);

이러면 그냥 멤버1의 명칭이 출력된다.

이는 열거형의 경우 내부적으로 ToString()을 호출하기에 문자열이 출력되는 것으로 내부에 숫자를 보고 싶다면 (int)를 사용해서 타입을 변경해줘야만 한다.

Console.WriteLine((int)열거형.멤버1);

 

Console 클래스에 사용 가능한 ConsoleColor 열거형

Console 클래스는 C#에서 터미널 입출력을 담당하는 정적 클래스로 표준 입력, 표준 출력, 표준 에러등에 관련된 입출력기능을 제공하고 텍스트의 출력, 키 입력 감지, 색상 변경, 커서 이동, 버퍼 조작등의 기능을 포함하고 있다.

 

여기서 ConsoleColor는 닷넷에서 제공하는 내장 열거형으로 콘솔 출력의 전경과 배경의 설정이 가능하다.

 

ConsoleColor의 전체 항목은 아래와 같이 구성되어 있어 해당 색상으로 전형 혹은 배경색의 변경이 가능하다

enum ConsoleColor
{
    Black,
    DarkBlue,
    DarkGreen,
    DarkCyan,
    DarkRed,
    DarkMagenta,
    DarkYellow,
    Gray,
    DarkGray,
    Blue,
    Green,
    Cyan,
    Red,
    Magenta,
    Yellow,
    White
}

 

1. 전경색 변경

전경색을 변경할때에는 Console의 ForegroundColor라는 정적멤버에게 ConsoleColor열거형으로 색상을 저장하면 터미널에서의 색상이 변경된다.

이러고 출력을 해보면 

콘솔에 나오는 모든 색상이 설정한 색상으로 변경된 것을 알 수 있다.

 

이렇게 설정한 색상은 Console.ResetColor()함수를 사용해서 초기화할 수 있다.

 

2. 배경색 변경

배경색도 방법은 비슷한데 설정을 하는 정적 멤버가 다르다

이번에는 BackgroundColor라는 정적멤버에 색상을 담아줘야한다.

 

 

열거형의 사용 예시

열거형은 실무에서 상태, 역할,, 타입, 옵션, 플래그값 등 의미 있는 이름으로 코드에 표현하고자 할때 사용된다.

 

1) 회원 등급 , 사용자 역할 분기에 사용되는 열거형

 

이렇게 Role이라는 열거형을 만들고 사용자라는 클래스에 열거형 타입으로 멤버를 선언해준 다음에 

각 사용자에게 권한을 부여해주고 관리자만 접근할 수 있는곳은 위와같이 분기처리해주면 사용자가 일반 사용자일 경우엔 

이렇게 접근을 막을 수 있다.

 

2) 상태값으로 사용되는 열거형

이렇게 배송 상태에 대한 열거형을 생성하고 이를 받는 택배건에 대한 정보를 클래스로 선언한다.

그리고 이를 사용할때 객체에 값을 열거형으로 넣어주고 이를 switch문으로 상태에 대한 정보를 분기처리할 수 있게 된다.

 

3. 설정 옵션, 모드 선택에 사용되는 열거형

파일을 저장할때 어떤 형식으로 저장할지를 지정할수 있도록 저장포멧을 열거형으로 생성하고

이를 Export라는 함수로 받아서 어떤 형식으로 저장할지 내부적으로 코드를 구현하고

함수를 호출할때 형식을 열거형으로 전달하면

어떤 형식으로 저장할지를 지정할 수 있다.

 

 

반응형

'Programming Language > C#' 카테고리의 다른 글

C# - 구조체2  (0) 2025.06.21
C# - 구조체 1  (0) 2025.06.17
C# - 닷넷API  (0) 2025.06.17
C# - 함수  (1) 2025.06.15
C# - 배열  (0) 2025.06.15