English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C# 열거형(Enum)

C#에서 enum(인터널 타입)은 일련의 숫자 정수 값에 상수 이름을 할당하는 데 사용됩니다. 이는 상수 값이 더 읽기 쉬워지게 합니다. 예를 들어, WeekDays.Monday는 주 중 일요일을 참조할 때, 0보다 더 읽기 쉽습니다.

열거형은 이름 공간, 클래스 또는 구조체에서 enum 키워드를 사용하여 직접 정의됩니다. 모든 상수 이름은 괄호 내에 선언되고 콤마로 구분됩니다. 아래는 근무일 열거형을 정의합니다.

enum WeekDays
{
    Monday
    Tuesday
    Wednesday
    목요일,
    금요일,
    토요일,
    일요일
}

위에서 WeekDays 열거형은 각 행에 멤버를 선언하고, 각 행은 콤마로 구분되었습니다.

열거형 값

열거형 멤버에 값이 할당되지 않았다면, 컴파일러는 기본적으로 각 멤버에 정수 값을 할당합니다. 열거형의 첫 번째 멤버는 0이며, 각 연속 열거형 멤버의 값은 증가합니다.1.

enum WeekDays
{
    Monday     // 0
    Tuesday    // 1
    Wednesday  // 2
    목요일,   // 3
    금요일,     // 4
    토요일,   // 5
    일요일      // 6
}

열거형 멤버에 다른 값을 할당할 수 있습니다. 열거형 멤버의 기본 값을 변경하면 자동으로 다른 멤버에 증가되는 값으로 순차적으로 할당됩니다.

enum Categories
{
    Electronics,    // 0
    Food,           // 1
    Automotive = 6, // 6
    Arts,           // 7
    BeautyCare,     // 8
    Fashion         // 9
}

각 멤버에 다른 값을 할당할 수 있습니다.

enum Categories
{
    Electronics = 1,  
    Food = 5, 
    Automotive = 6, 
    Arts = 10, 
    BeautyCare = 11, 
    Fashion = 15,
    WomanFashion = 15
}

열거형은 byte, sbyte, short, ushort, int, uint, long 또는 ulong과 같은 어떤 숫자 데이터 타입이 될 수 있습니다. 그러나 열거형은 문자열 타입이 될 수 없습니다.

enum 이름 뒤에 타입을 :type로 지정합니다. 아래는 바이트 열거형을 정의합니다.

enum Categories: byte
{
    Electronics = 1,  
    Food = 5, 
    Automotive = 6, 
    Arts = 10, 
    BeautyCare = 11, 
    Fashion = 15
}

열거형 접근

점표기법을 사용하여 접근할 수 있습니다: enum.member

enum WeekDays
{
    Monday 
    Tuesday
    Wednesday
    목요일, 
    금요일, 
    토요일,
    일요일 
}
Console.WriteLine(WeekDays.Monday); // 월요일
Console.WriteLine(WeekDays.Tuesday); // 화요일
Console.WriteLine(WeekDays.Wednesday); // 수요일
Console.WriteLine(WeekDays.Thursday); // 목요일
Console.WriteLine(WeekDays.Friday); // 금요일
Console.WriteLine(WeekDays.Saturday); // 토요일
Console.WriteLine(WeekDays.Sunday); // 일요일

열거형 변환

열거형 타입에서 기본 정수 타입으로 변환할 때 명시적인 강제 변환이 필요합니다.

enum WeekDays
{
    Monday 
    Tuesday
    Wednesday
    목요일, 
    금요일, 
    토요일,
    일요일 
}
Console.WriteLine(WeekDays.Friday); //출력: 금요일 
int day = (int) WeekDays.Friday; // 열거형에서 int로의 변환
Console.WriteLine(day); //출력:4 
var wd = (WeekDays) 5; // int에서 열거형으로의 변환
Console.WriteLine(wd);//출력: 토요일

enum은 추상 클래스입니다。