整数値に名前をつけた集合を定義することができます。これを列挙体といいます。
たとえば、数字の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);
}
}
実行結果は次のようになります。
Update 25/Aug/2006 By Y.Kumei