Convert Enum

★━─….NET/C# 2010. 2. 7. 20:24

Convert Enum




enum 데이터 타입을 사용하면서 데이터 변환에 사용되는 몇가지 기술을 정리해 보았다.



Convert integer to Enum instance

enum 타입을 생성한 후에, enum 인스턴스의 값을 적절한 타입으로 변환해 주는 것은 어렵지 않다.
바로 Convert 클래스를 이용하면 쉽게 가능하다.
그런데... 보통 int 값을 해당 enum 인스턴스에 대입하려 할 때 쉽지 않음을 느꼈다.
처음에는 해당 int 값을 swich-case 문을 이용하여 값을 일일이 설정해 주었다. 코드만 길어지고 관리하기 효율적인 코드가 아니다.

Enum 클래스의 ToObject 정적 메소드를 이용하면 된다.
ToObject 정적 메소드는 지정된 값을 갖는 enum 인스턴스를 생성해 준다. object 타입으로 리턴하므로 적절히 타입 캐스팅을 해서 사용하면 된다. 예외처리 코드 다 빼고 핵심만을 코드로 작성한다면 다음과 같다.


public enum Day
{
        Mon = 0,
        Tue,
        Wed
}


public static void Main(string[] args)
{
    int a = 1;
    Day day = Day.Mon;

     day = (Day)Enum.ToObject(typeof(Day), a);

     Console.WriteLine("day = {0}", day.ToString());
     Console.ReadKey();
}










Convert enum to string

enum 데이터의 상수값이 아닌 데이터 이름(?) 을 string 으로 변환하여 얻는 방법이다.
Enum.GetNames 정적 메소드를 이용하면 string[] 을 얻는다.
Enum.GetName 정적 메소드를 이용하면 지정한 값을 갖는 데이터 이름을 얻는다. 즉 string


Convert string to enum

Enum.Parse 정적 메소드를 이용한다. 지정한 string 이름의 값을 갖는 enum 인스턴스를 얻는다.


위 정적 메소드를 이용한 코드이다.









Posted by six605
,