Enum은 프로그램에서 상징적인 이름에 고유번호를 붙여서 사용하는 방법으로 C#에서의 열거형(Enum)은 C언어에서의 똑같은 방법으로 선언하여 사용한다.
기본적인 방법으로 아래와 같이 사용하며, 열거자 값은 0이며, 순차적으로 1, 2, 3.... 증가하게 된다.
enum Days { Sun, Mon, Tue, Wed, Thu, Fri, Sat};
위의 열거자에서 Sun의 값은 0이며, Mon은 1, Tue는 2, ... 이렇식으로 증가하게 된다.
사용하는 방법은 간단하다.
using System;
public class EnumTest
{
enum Days{Sun, Mon, Tue, Wed, Thu, Fri, Sat};
static void main()
{
int x = (int) Days.Sun;
int y = (int) Days.Fri;
Console.WriteLine("sun = {0}", x);
Console.WriteLine("Fri = {0}", y);
Console.WriteLine("Days = {0}", (Days)Enum.Pasre(Days.Sun.GetTypes(),"Sun",True)); // 이런식으로 표현가능
}
}
위와 같은 방법으로 사용할 수 있으며, 결과값은
sun = 0
fri = 6
이 나오게 된다.
열거형의 base-type을 변경하여 사용할 수 잇는데 아래에서 다뤄보도록 하겠다.
using System;
public class EnumTest
{
enum Range : long{Max = 2147483648L, Min = 255L};
static void main()
{
long x = (long)Range.Max;
long y = (long)Range.Min;
Console.WriteLine("{0}", x);
Console.WriteLine("{0}", y);
}
}
Range rTemp = ((Range)Enum.Parse(Range.Max.GetType(), 'Max', true));
명시적 열거형 변환에는 sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal을 모든 enum-type으로 변환할 수 잇다.
출처 :
http://msdn.microsoft.com/ko-kr/library/sbbt4032%28VS.80%29.aspx
http://msdn.microsoft.com/ko-kr/library/aa691290(VS.71).aspx