English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
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은 추상 클래스입니다。