C# 에서의 Enum
Programming/C# / 2010. 7. 6. 22:20
기껏해봐야 C++하다 JAVA혹은 C#하는 경우가 고작이지만
새로운 언어로 코딩하려다 보면 이런 기초적인 문법에서 막힐 때가 있다.
역으로 C++로 버닝하다 간만에 C를 하는데 BOOL을 선언하고 "왜 안되지?"하는 고민할때도 있고.
enum역시 쓸때마다 "C#에서는 뭔가 틀린 점이 있지 않았나?" 하고 매번 의구심을 갖지만 매번 까먹는다.
또 까먹을까 싶어서 이렇게 정리해둔다.
C#에서의 enum은 이전의 C, C++과 다를 바가 없다.
enum 키워드를 사용하여 괄호{} 안에 상수를 열거하는 것.
이때 열거된 상수들은 정수 계열 형식을 갖는다.
아무런 값을 초기화시키지 않았을 경우,
기본적으로 첫 번째 열거자의 값은 0, 그 이후로 열거자 값은 순서대로 1씩 증가한다.
msdn의 예를 들면
enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
이때, Sat = 0, Sun = 1 ..... Fri = 6 을 값으로 갖는다는 말.
그런데 열거자의 값을 설정할 수도 있다. 위의 예를 변형하여 설명하면
enum Days {Sat = 1, Sun, Mon, Tue, Wed, Thu, Fri};
이렇게하면 Sat의 값은 1이 되고 그 숫자 이후로 각 열거자들의 값이 설정된다.
즉, Sun = 2, Mon = 3, ... , Fri = 7 을 값으로 갖는다.
enum으로 선언한 상수들은 정수 계열의 형식을 갖지만 실제로 정수 계열의 형식으로 변환하기 위해서는
명시적 캐스트가 있어야 한다.
int x = (int)Days.Sun;
enum으로 선언한 상수들의 형식을 지정해 줄 수도 있다.
enum Days : float {Sat, Sun, Mon, Tue, Wed, Thu, Fri};
위와 같이 선언하면 Days의 상수들은 전부 float형의 값을 가지게 된다.
[출처] C# 에서의 Enum|작성자 Triumph
반응형
'Programming > C#' 카테고리의 다른 글
단축키 만들기 with C# (1) | 2010.07.07 |
---|---|
폼과 폼간의 전송 (부모 자식간의 전송) (0) | 2010.07.07 |
C#에서의 '마우스 클릭(mousedown) 상태'에서 '마우스 이벤트' 일어나지 않는 문제 (0) | 2010.07.06 |
Windows Forms FAQ - Windows Forms (0) | 2010.07.02 |
C# 싱글톤 (0) | 2010.07.02 |