第19章 列挙体


整数値に名前をつけた集合を定義することができます。これを列挙体といいます。



たとえば、数字の1にone、2にtwo、などと名前をつけることができます。

列挙体は、次のように定義します。

enum 名前{識別子1, 識別子2,...};
識別子1から順に0, 1, 2,...が割り当てられます。また、途中から割り当てを変更する場合は、
enum enum-name{a, b, c=0, d, e};
のように書きます。これで、aは0、bは1, cは0, dは1, eは2が割り当てられます。

呼び出すときは

列挙体の名前.識別子
で行います。enum型をint型等の整数型に変換するときは型キャストを行う必要があります。
// enum01.cs

using System;

class enum01
{
    public enum mymonth {Jan = 1, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct,
    Nov, Dec};

    public static void Main()
    {
        Console.WriteLine("Jan = {0}月", (int)mymonth.Jan);
        Console.WriteLine("Feb = {0}月", (int)mymonth.Feb);
        Console.WriteLine("Mar = {0}月", (int)mymonth.Mar);
        Console.WriteLine("Apr = {0}月", (int)mymonth.Apr);
        Console.WriteLine("May = {0}月", (int)mymonth.May);
        Console.WriteLine("Jun = {0}月", (int)mymonth.Jun);
        Console.WriteLine("Jul = {0}月", (int)mymonth.Jul);
        Console.WriteLine("Aug = {0}月", (int)mymonth.Aug);
        Console.WriteLine("Sep = {0}月", (int)mymonth.Sep);
        Console.WriteLine("Oct = {0}月", (int)mymonth.Oct);
        Console.WriteLine("Nov = {0}月", (int)mymonth.Nov);
        Console.WriteLine("Dec = {0}月", (int)mymonth.Dec);
    }
        
}
実行結果は次のようになります。



通常はint型ですが、他の整数型を割り当てることもできます。この場合

enum 名前:整数型 {識別子,...};
のように書きます。
// enum02.cs

using System;

class enum02
{
    enum myenum : sbyte {a = -20, b, c = -10, d, e = 20};

    public static void Main()
    {
        Console.WriteLine((sbyte)myenum.a);
        Console.WriteLine((sbyte)myenum.b);
        Console.WriteLine((sbyte)myenum.c);
        Console.WriteLine((sbyte)myenum.d);
        Console.WriteLine((sbyte)myenum.e);
    }
}
実行結果は次のようになります。




[C# Index] [総合Index] [Previous Chapter] [Next Chapter]

Update 25/Aug/2006 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、 転載あるいはコンピュータ等のファイルに保存することを禁じます。