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 から継承し、 IComparableIFormattableIConvertible の各インターフェイスを実装します。このクラスの明示的な 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