Enum クラス
列挙体の基本クラスを提供します。
この型のすべてのメンバの一覧については、Enum メンバ を参照してください。
System.Object
System.ValueType
System.Enum
派生クラス
<Serializable>
MustInherit Public Class Enum Implements IComparable, IFormattable, IConvertible
[C#]
[Serializable]
public abstract class Enum : IComparable, IFormattable, IConvertible
[C++]
[Serializable]
public __gc __abstract class Enum : public IComparable, IFormattable, IConvertible
[JScript]
public
Serializable
abstract class Enum implements IComparable, IFormattable, IConvertible
スレッドセーフ
この型は、マルチスレッド操作に対して安全です。
解説
Enum は、基になる型が Char 以外の整数型である名前付き定数です。基になる型が明示的に宣言されない場合は、 Int32 が使用されます。通常、プラミング言語には、名前付き定数とその値の組み合わせから成る列挙体を宣言する構文が用意されています。
クラス Enum は、クラス ValueType から派生します。つまり、 Enum それ自体は参照型であり、値型ではありません。
Enum には、このクラスの複数のインスタンスを比較したり、インスタンスの値を文字列形式に変換したり、数値の文字列形式をこのクラスのインスタンスに変換したり、指定した列挙体および値のインスタンスを作成するためのメソッドが用意されています。
Enum をビット フィールドとして扱うこともできます。詳細については、 FlagsAttribute のトピックを参照してください。
このクラスは、 ValueType から継承し、 IComparable 、 IFormattable 、 IConvertible の各インターフェイスを実装します。このクラスの明示的な IConvertible インターフェイス メンバの実装の代わりに、 Convert クラスを変換のために使用します。
使用例
Enum の使用方法については、次のコード例を参照してください。
Imports System
Public Class EnumTest
Enum Days
Saturday
Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
End Enum 'Days
Enum BoilingPoints
Celcius = 100
Fahrenheit = 212
End Enum 'BoilingPoints
<FlagsAttribute()> _
Enum Colors
Red = 1
Green = 2
Blue = 4
Yellow = 8
End Enum 'Colors
Public Shared Sub Main()
Dim weekdays As Type = GetType(Days)
Dim boiling As Type = GetType(BoilingPoints)
Console.WriteLine("The days of the week, and their corresponding values in the Days Enum are:")
Dim s As String
For Each s In [Enum].GetNames(weekdays)
Console.WriteLine("{0,-11} = {1}", s, [Enum].Format(weekdays, [Enum].Parse(weekdays, s), "d"))
Next s
Console.WriteLine()
Console.WriteLine("Enums can also be created which have values that represent some meaningful amount.")
Console.WriteLine("The BoilingPoints Enum defines the following items, and corresponding values:")
For Each s In [Enum].GetNames(boiling)
Console.WriteLine("{0,-11} = {1}", s, [Enum].Format(boiling, [Enum].Parse(boiling, s), "d"))
Next s
Dim myColors As Colors = Colors.Red Or Colors.Blue Or Colors.Yellow
Console.WriteLine()
Console.WriteLine("myColors holds a combination of colors. Namely: {0}", myColors)
End Sub 'Main
End Class 'EnumTest
[C#]
using System;
public class EnumTest {
enum Days { Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday };
enum BoilingPoints { Celcius = 100, Fahrenheit = 212 };
[FlagsAttribute]
enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };
public static void Main() {
Type weekdays = typeof(Days);
Type boiling = typeof(BoilingPoints);
Console.WriteLine("The days of the week, and their corresponding values in the Days Enum are:");
foreach ( string s in Enum.GetNames(weekdays) )
Console.WriteLine( "{0,-11}= {1}", s, Enum.Format( weekdays, Enum.Parse(weekdays, s), "d"));
Console.WriteLine();
Console.WriteLine("Enums can also be created which have values that represent some meaningful amount.");
Console.WriteLine("The BoilingPoints Enum defines the following items, and corresponding values:");
foreach ( string s in Enum.GetNames(boiling) )
Console.WriteLine( "{0,-11}= {1}", s, Enum.Format(boiling, Enum.Parse(boiling, s), "d"));
Colors myColors = Colors.Red | Colors.Blue | Colors.Yellow;
Console.WriteLine();
Console.WriteLine("myColors holds a combination of colors. Namely: {0}", myColors);
}
}
[C++]
#using <mscorlib.dll>
using namespace System;
__value enum Days { Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday };
__value enum BoilingPoints { Celcius = 100, Fahrenheit = 212 };
[FlagsAttribute]
__value enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };
int main() {
Type* weekdays = __typeof(Days);
Type* boiling = __typeof(BoilingPoints);
Console::WriteLine("The days of the week, and their corresponding values in the Days Enum are:");
Array* a = Enum::GetNames(weekdays);
Int32 i = 0;
do{
Object* o = a->GetValue(i);
Console::WriteLine( "{0,-11}= {1}", o->ToString(), Enum::Format( weekdays, Enum::Parse(weekdays, o->ToString()), "d"));
}while( ++i < a->Length);
Console::WriteLine();
Console::WriteLine("Enums can also be created which have values that represent some meaningful amount.");
Console::WriteLine("The BoilingPoints Enum defines the following items, and corresponding values:");
i = 0;
Array* b = Enum::GetNames(boiling);
do{
Object* o = b->GetValue(i);
Console::WriteLine( "{0,-11}= {1}", o->ToString(), Enum::Format(boiling, Enum::Parse(boiling, o->ToString()), "d"));
}while( ++i < b->Length );
Array* c = Enum::GetNames(__typeof(Colors));
Int32 myColors __gc[]= {Colors::Red, Colors::Blue, Colors::Yellow};
Console::WriteLine();
Console::Write("myColors holds a combination of colors. Namely:");
for( i=0; i<3; i++)
Console::Write(" {0}", c->GetValue(i));
}
[JScript]
import System;
public class EnumTest {
enum Days { Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday };
enum BoilingPoints { Celcius = 100, Fahrenheit = 212 };
FlagsAttribute
enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };
public static function Main() {
var weekdays : Type = Days;
var boiling : Type = BoilingPoints;
Console.WriteLine("The days of the week, and their corresponding values in the Days Enum are:");
for( var i : int in Enum.GetNames(weekdays) )
Console.WriteLine( "{0,-11}= {1}", Enum.GetNames(weekdays).GetValue(i),
Enum.Format( weekdays, Enum.Parse(weekdays, Enum.GetNames(weekdays).GetValue(i)), "d"));
Console.WriteLine();
Console.WriteLine("Enums can also be created which have values that represent some meaningful amount.");
Console.WriteLine("The BoilingPoints Enum defines the following items, and corresponding values:");
for ( var j : int in Enum.GetNames(boiling) )
Console.WriteLine( "{0,-11}= {1}", Enum.GetNames(boiling).GetValue(j),
Enum.Format(boiling, Enum.Parse(boiling, Enum.GetNames(boiling).GetValue(j)), "d"));
var myColors : Colors = Colors.Red | Colors.Blue | Colors.Yellow;
Console.WriteLine();
Console.WriteLine("myColors holds a combination of colors. Namely: {0}", myColors);
}
}
必要条件
名前空間: System
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: Mscorlib (Mscorlib.dll 内)
参照
Enum メンバ | System 名前空間 | ValueType | FlagsAttribute | Char | Int32