Updated at 2021.12.14
Enum 타입 다루기
열겨형 타입(Enumeration Type)은 프로그래밍시 매우 유용하고 많이 다루게 된다. enum
키워드를 사용하여 타입을 정의하고, 그것을 새로운 타입으로 하여 새로운 변수를 정의하여 사용하면 된다.
실전 프로그래밍시에는 int
나 string
타입으로 변경할 경우가 많이 발생하는데 그것을 어떻게 할 수 있는지를 여기서 정리해 본다.
enum DialogResult {
YES, // 0
NO, // 1
CANCEL, // 2
CONFIRM, // 3
OK //4
}
DialogResult rslt = DialogResult.NO;
정수값을 할당하지 않으면 컴파일러가 순서대로 0부터 번호를 자동으로 할당한다.
enum to string
기본적으로 문자열로 변환하는 것은 매우 쉽다. ToString()
함수를 제공하기 때문이다.
string str = rslt.ToString();
// str = "NO"
enum to int
정수형으로 변환하는 것을 캐스팅을 활용하면 쉽게 가능하다.
int num = (int)rslt;
// num = 1
string to enum
문자열을 enum으로 변환하는 경우는 위의 두가지 경우와 같은 함수와 간단한 캐스팅이 되지 않는다.
DialogResult rslt = (DialogResult)Enum.Parse(typeof(DialogResult), "NO");
// rslt = DialogResult.NO
매번 위와 같은 코드를 작성하기 보다는 ToString()
함수 처럼 일반적으로 쓸 수 있는 ToEnum()
Extension Method를 만들 수 있다.
// Definition of Extension Method
public static T ToEnum<T>(this string enumString)
{
return (T)Enum.Parse(typeof(T), enumString)
}
// Usage
string noStr = "NO";
DialogResult rslt = noStr.ToEnum<DialogResult>();
// rslt = DialogResult.NO
int to enum
정수형을 열겨형으로 변환하는 것을 타입캐스팅을 활용하면 된다.
DialogResult rslt = (DialogResult)1;
// rslt = DialogResult.NO
댓글
댓글 쓰기