열거 형식은 이런 실수를 막아주는 장치입니다.
첫 번째 열거 형식 요소에는 0, 그 다음 요소에는 1, 그리고 그 다음 요소에는 2의 식으로 1씩 증가한 값을 컴파일러가 자동으로 할당합니다. 실제로 예제 프로그램을 통해 확인해보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
using System;
namespace Enum
{
class MainApp
{
enum DialogResult { YES, NO, CANCEL, CONFIRM, OK }
static void Main(string[] args)
{
Console.WriteLine((int)DialogResult.YES);
Console.WriteLine((int)DialogResult.NO);
Console.WriteLine((int)DialogResult.CANCEL);
Console.WriteLine((int)DialogResult.CONFIRM);
Console.WriteLine((int)DialogResult.OK);
}
}
}
|
cs |
예제 프로그램의 실행 결과를 보면, 코드에서는 열거 형식의 각 요소에 어떤 값도 주지 않았지만 이들이 정수 데이터를 갖고 있음을 볼 수 있습니다. DialogResult의 각 요소들이 갖고 있는 값은 컴파일러가 자동으로 할당했습니다.
C#의 열거 형식이 이렇게 설계된 이유는 열거 형식의 요소가 어떤 값을 갖느냐는 별 의미가 없기 때문에 열거 형식의 각 요소는 서로 중복되지 않는 값을 갖고 있다는 데 의미가 있습니다. 즉, "DialogResult가 0이다"보다는 "DialogResult가 YES다"가 훨씬 의미를 잘 전달하는 것 입니다.
'C#' 카테고리의 다른 글
열거 형식 숫자를 할당받기 Enum3 (0) | 2022.07.18 |
---|---|
열거 형식을 기반으로 변수로 만들기 Enum2 (0) | 2022.07.18 |
언제나 변하지 않는 상수 (0) | 2022.07.18 |
문자열을 숫자로, 숫자를 문자열로 변환 (0) | 2022.07.18 |
부동 소수점 형식과 정수 형식 사이의 변환 (0) | 2022.07.18 |