C#문법연습(6): 열거

3315 단어
열거, 열거 값, 열거 이름을 표시합니다.
using System;

class MyClass
{
    enum MyEnum { AA, BB, CC };  /*             */

    static void Main()
    {
        MyEnum e = MyEnum.CC;
        Console.WriteLine(e);                   // CC
        Console.WriteLine((byte)e);             // 2
        Console.WriteLine((int)e);              // 2
        Console.WriteLine(Convert.ToString(e)); // CC

        Console.ReadKey();
    }
}

 
 
 
 
 

 

 
  

숫자 또는 문자열을 열거로 변환하기
using System;

class MyClass
{
    enum MyEnum { AA, BB, CC };

    static void Main()
    {
        MyEnum e;

        e = (MyEnum)1;
        Console.WriteLine(e);                         // BB

        e = (MyEnum)Enum.Parse(typeof(MyEnum), "BB");
        Console.WriteLine(e);                         // BB

        Console.ReadKey();
    }
}

 
 
 
 
 

 

 
  

열거된 Names 및 Values:
using System;

class MyClass
{
    enum MyEnum { AA, BB, CC };

    static void Main()
    {
        foreach (string s in Enum.GetNames(typeof(MyEnum)))
        {
            Console.WriteLine(s); // AA/BB/CC
        }

        foreach (int n in Enum.GetValues(typeof(MyEnum)))
        {
            Console.WriteLine(n); // 0/1/2
        }
        
        Console.ReadKey();
    }
}

 
 
 
 
 

 

 
  

열거 값은 정수(기본값은 int 유형, 0부터)로 열거 값을 사용자 정의할 수 있습니다.
using System;

class MyClass
{
    enum MyEnum { AA=2, BB, CC=7, DD, EE };

    static void Main()
    {
        foreach (int i in Enum.GetValues(typeof(MyEnum)))
        {
            Console.WriteLine(i); // 2/3/7/8/9
        }
        
        Console.ReadKey();
    }
}

 
 
 
 
 

 

 
  

모든 정형(char 형식 포함하지 않음)을 매거값의 형식으로 지정할 수 있습니다. 다음은byte로 지정됩니다.
using System;

class MyClass
{
    enum MyEnum : byte { AA, BB, CC, DD };

    static void Main()
    {
        string[] Names = Enum.GetNames(typeof(MyEnum));
        foreach (string s in Names)
        {
            Console.WriteLine(s); // AA/BB/CC/DD
        }

        byte[] Values = (byte[])Enum.GetValues(typeof(MyEnum));
        foreach (byte n in Values)
        {
            Console.WriteLine(n); // 0/1/2/3
        }

        Console.ReadKey();
    }
}

 
 
 
 
 

 

 
  

매거는 항상 이렇게 사용한다.
using System;

class MyClass
{
    enum MyEnum
    {
        AA = 0x0,
        BB = 0x1,
        CC = 0x2,
        DD = 0x4,
        EE = 0x8,
        FF = 0x10,
        GG = 0x20,
        HH = 0x40
    }

    static void Main()
    {
        MyEnum es = MyEnum.CC | MyEnum.DD;
        
        Console.WriteLine(es); // 6

        Console.ReadKey();
    }
}

 
 
 
 
 

 

 
  

좋은 웹페이지 즐겨찾기