참고자료 : 닷넷 프로그래밍 정복(김상형) p.94

MSDN 관련 페이지 : http://msdn.microsoft.com/ko-kr/library/sbbt4032.aspx


열거형은 C/C++과 같이 enum 키워드로 정의 할 수 있다. 하지만 다른점이 몇가지 있다.

1. 타입을 정의 하는 문장은 명령이 아니기 때문에 열거형 정의문 뒤에 세미콜론을 붙이지 않는다.
2. 열거멤버 자체를 곧바로 사용할 수 없으며 반드시 열거타입.멤버 식으로 사용해야 한다.


열거형 정의 방법
enum Origin { East, West, South, North }
enum Origin { East = 1, West = 5, South, North }
// 값이 생략된 멤버는 자동적으로 이전멤버의 값보다 1 더 큰 값을 갖는다.


열거형의 특징
열거형은 내부적으로 정수형으로 저장되는데 별다른 지정이 없으면 4바이트의 int 타입을 가진다. int 타입의 열거형은 최대 40억개의 열거 멤버를 정의할 수 있어 크기가 충분하다. 그러나 너무 충분해서 기억장소가 다소 낭비되는데 선언할 때 열거타입 이름 다음에 내부 저장 타입을 지정하면 용량을 다소 아낄 수 있다.
enum Origin : byte { East, West, South, North }


열거형 사용법
using System;
class CSTest
{
    enum Origin { East, West, South, North }
    static void Main()
    {
        Origin Turn;
        Turn = Origin.South;
        Console.WriteLine(Turn);
        int Value1 = (int)Turn;
        int Value2 = (int)Origin.South;
        Console.WriteLine(Value1);
        Console.WriteLine(Value2);

        string name = Turn.ToString();
        Console.WriteLine(name);
        Turn = (Origin)Enum.Parse(typeof(Origin), "East");
        Console.WriteLine(Turn);
    }
}
저작자 표시 비영리 변경 금지
Posted by 태발이

댓글을 달아 주세요