netstandard.dll列挙体の基底クラスを提供します。次の例では、列挙体を使用して名前付きの値を表し、別の列挙体を使用して名前付きビットフィールドを表す方法を示します。列挙は、基になる型が任意の整数型である名前付き定数のセットです。基になる型が明示的に宣言されていない場合は、Int32が使用されます。内のすべての列挙体の基本クラスです。Enum構造で定義します。Basic.Enumは、このクラスのインスタンスを比較し、インスタンスの値を文字列形式に変換し、数値の文字列形式をこのクラスのインスタンスに変換し、指定した列挙体と値のインスタンスを作成するメソッドを提供します。value.列挙体をビットフィールドとして扱うこともできます。属性」セクションおよび「FlagsAttribute」を参照してください。typeプログラミング言語は、通常、一連の名前付き定数とその値で構成される列挙型を宣言するための構文を提供します。よって使用される構文を示しています。ArrivalStatus、ArrivalStatus.Early、およびArrivalStatus.OnTimeの3つのメンバーを持つArrivalStatus.Lateという名前の列挙体を作成します。どちらの場合も、列挙体はEnumから明示的に継承されないことに注意してください。継承関係は、コンパイラによって暗黙的に処理されます。Charである列挙型を作成することは避けてください。リフレクションを使用してこのような列挙型を作成することもできますが、結果の型を使用するメソッド呼び出しは信頼性が低く、追加の例外をスローする場合もあります。値がArrivalStatusであるArrivalStatus.OnTimeをインスタンス化する例を次に示します。(0)列挙値は、次の方法でインスタンス化することもできます。ことで、整数値を列挙値に変換します。次の例では、この方法でArrivalStatus値を持つArrivalStatus.Earlyオブジェクトを作成します。(1)暗黙のパラメーターなしのコンストラクターを呼び出します。次の例に示すように、この例では、列挙インスタンスの基になる値は0です。これは必ずしも列挙体の有効な定数の値であるとは限りません。メソッドを呼び出して、列挙体の定数の名前を含む文字列を解析します。詳細については、「列挙値の解析」セクションを参照してください。メソッドを呼び出して、整数値を列挙型に変換する。詳細については、「変換の実行」セクションを参照してください。practices列挙型を定義するときは、次のベストプラクティスを使用することをお勧めします。列挙メンバーを定義していない場合は、None列挙定数を作成することを検討してください。ある定数を定義しなかった場合、列挙体の作成時に無効な値が含まれます。created.アプリケーションで表現する必要がある明確な既定のケースがある場合は、それを表すために値が0である列挙定数を使用することを検討してください。既定のケースが存在しない場合は、その他の列挙定数で表されないケースを指定するために、値が0である列挙定数を使用することを検討してください。constants.将来使用するために予約されている列挙定数を指定しないでください。use.列挙定数を値として受け取るメソッドまたはプロパティを定義する場合は、値を検証することを検討してください。その数値が列挙体で定義されていない場合でも、数値を列挙型にキャストできることが原因です。enumeration.定数がビットフィールドである列挙型のその他のベストプラクティスについては、「非排他的メンバーとフラグ属性」セクションに記載されています。enumerations列挙体を作成するときに、新しいメソッドを定義することはできません。クラスから静的メソッドとインスタンスメソッドの完全なセットを継承します。以下のセクションでは、列挙値を操作するときによく使用されるいくつかのメソッドに加え、これらのメソッドのほとんどについて説明します。演算子を使用して、列挙型メンバーとその基になる型の間で変換を行うことができます。次の例では、キャスト演算子または変換演算子を使用して、整数から列挙値への変換と、列挙値から整数への変換を実行します。CInt(status3)Enumクラスには、任意の整数型の値を列挙値に変換するToObjectメソッドも含まれています。メソッドを使用して、Int32をArrivalStatus値に変換します。ToObjectはObject型の値を返すため、キャスト演算子または変換演算子が、オブジェクトを列挙型にキャストするために必要になる場合があることに注意してください。ArrivalStatus)整数を列挙値に変換する場合、実際には列挙体のメンバーではない値を割り当てることができます。これを回避するには、変換を実行する前に、IsDefinedメソッドに整数を渡します。値に変換できるかどうかを判断します。UnknownEnumクラスには、列挙値から整数型への変換のためのIConvertibleインターフェイスの明示的なインターフェイス実装が用意されていますが、ConvertなどのToInt32クラスのメソッドを使用して、これらの変換を実行することをお勧めします。次の例は、GetUnderlyingTypeメソッドをConvert.ChangeTypeメソッドと共に使用して、列挙値を基になる型に変換する方法を示しています。この例では、コンパイル時に列挙型の基になる型が認識される必要がないことに注意してください。valuesParseメソッドとTryParseメソッドを使用すると、列挙値の文字列形式をその値に変換できます。文字列形式には、列挙定数の名前または基になる値を指定できます。文字列を列挙型の基になる型の値に変換できる場合、解析メソッドは、特定の列挙体のメンバーではない数値の文字列形式を正常に変換することに注意してください。これを回避するには、IsDefinedメソッドを呼び出して、解析メソッドの結果が有効な列挙値であることを確認します。TEnum)メソッドの両方の呼び出しを示しています。する必要があるオブジェクトを返すことに注意してください。メソッドのオーバーロードを呼び出したりすることができます。書式指定文字列を使用すると、列挙値を文字列として表現する正確な方法を制御できます。使用して、ArrivalStatus列挙体のメンバーを文字列形式に変換します。Eachインターフェイスを実装していません。つの方法のいずれかでメンバーを列挙できます。メソッドを呼び出して、列挙体のメンバーの名前を含む文字列配列を取得できます。メソッドを呼び出して、文字列をそれと等価な列挙値に変換します。このアプローチの例を次に示します。メソッドを呼び出して、列挙体の基になる値を含む配列を取得できます。メソッドを呼び出して、整数をそれと等価な列挙値に変換します。このアプローチの例を次に示します。相互に排他的な値のセットを表すことです。インスタンスは、Early``OnTime、またはLateの値を持つことができます。インスタンスの値には意味がありません。constant.ただし別の場合、列挙オブジェクトの値には複数の列挙体メンバーを含めることができ、各メンバーは列挙値のビットフィールドを表します。属性を使用して、列挙体がビットフィールドで構成されていることを示すことができます。Petsという名前の列挙体を使用して、家族のペットの種類を示すことができます。次のように定義できます。EnumPets列挙体は、次の例に示すように使用できます。属性を適用するときは、次のベストプラクティスを使用する必要があります。実行する場合にのみ、列挙体のFlagsAttributeカスタム属性を使用します。累乗で列挙定数を定義します。これは、結合された列挙定数内の個々のフラグが重複しないことを意味します。overlap.よく使用されるフラグの組み合わせに対して列挙定数を作成することを検討してください。WriteとReadを組み合わせたWrite列挙定数を作成することを検討してください。演算は、単純なタスクにとって不必要に高度な概念と見なされる場合があります。tasks.フラグの列挙定数として負の数を定義すると、多くのフラグ位置が1に設定されることがあるため、注意してください。これにより、コードの混乱を招く可能性があり、コーディングエラーを助長します。errors.数値でフラグが設定されているかどうかをテストする便利な方法は、次の例に示すように、HasFlagインスタンスメソッドを呼び出すことです。演算を実行することと同じです。この場合、数値のすべてのビットをフラグに対応しないゼロに設定し、その操作の結果がフラグ列挙定数と等しいかどうかをテストします。このことを次の例で説明します。あるフラグ列挙定数の名前としてNoneを使用します。演算では、結果が常に0であるため、None列挙定数を使用してフラグをテストすることはできません。数値内のビットが設定されているかどうかを判断するために、数値とNoneに、数値と列挙定数の間でビットごとの比較ではなく論理演算を実行することができます。このことを次の例で説明します。列挙型自体の状態を反映するためだけに列挙値を定義しないでください。列挙型の末尾を示すだけの列挙定数は定義しないでください。列挙体の最後の値を確認する必要がある場合は、その値を明示的に確認します。範囲内のすべての値が有効な場合は、最初と最後に列挙された定数の範囲チェックを実行できます。言語構造によって定義されているため、Enumクラスから継承されたメソッド以外の列挙型のカスタムメソッドを定義することはできません。拡張メソッドを使用して、特定の列挙型に機能を追加することができます。列挙型は学生が授業で受け取る成績評価を表わしています。できるようになっています。Extensionsクラスには、最小合格評価を定義する静的読み取り/書き込み変数も含まれています。拡張メソッドの戻り値には、その変数の現在の値が反映されます。クラスの新しいインスタンスを初期化します。class.メソッドCompareTo(Object)指定したオブジェクトとこのインスタンスを比較し、これらの相対値を示す値を返します。values.Equals(Object)このインスタンスが指定されたオブジェクトに等しいかどうかを示す値を返します。String)指定した形式に従って、指定した列挙型の指定した値をそれと等価の文字列形式に変換します。Object)指定した値を持つ指定した列挙体にある定数の名前を取得します。value.GetNames(Type)指定した列挙体に含まれている定数の名前の配列を取得します。Object)GetTypeCode()この列挙メンバーの基になる型の型コードを返します。member.GetUnderlyingType(Type)指定した列挙体の基になる型を返します。enumeration.GetValues(Type)指定した列挙体に含まれている定数の値の配列を取得します。フィールドが設定されているかどうかを判断します。Object)指定された整数値、またはその名前が文字列として指定した列挙型に存在するかどうかを示すブール値を返します。簡易コピーを作成します。以上の列挙定数の名前または数値を、等価の列挙オブジェクトに変換します。以上の列挙定数の名前または数値を、等価の列挙オブジェクトに変換します。演算で大文字と小文字を区別しないかどうかをパラメーターで指定します。以上の列挙定数の名前または数値の文字列表現を、等価の列挙オブジェクトに変換します。以上の列挙定数の名前または数値の文字列表現を、等価の列挙オブジェクトに変換します。演算で大文字と小文字を区別しないかどうかをパラメーターで指定します。ビット符号なし整数を列挙メンバーに変換します。ビット符号付き整数を列挙メンバーに変換します。ビット符号付き整数を列挙メンバーに変換します。ビット符号付き整数を列挙メンバーに変換します。Object)整数値を持つ指定したオブジェクトを列挙メンバーに変換します。ビット符号付き整数値を列挙メンバーに変換します。ビット符号なし整数値を列挙メンバーに変換します。ビット符号なし整数値を列挙メンバーに変換します。ビット符号なし整数値を列挙メンバーに変換します。member.ToString()このインスタンスの値を、それと等価の文字列形式に変換します。representation.ToString(IFormatProvider)このメソッドのオーバーロードは現在使用しません。ToString().ToString(String)指定した書式を使用して、このインスタンスの値をそれと等価な文字列形式に変換します。IFormatProvider)このメソッドのオーバーロードは現在使用しません。以上の列挙定数の名前または数値を、等価の列挙オブジェクトに変換します。以上の列挙定数の名前または数値を、等価の列挙オブジェクトに変換します。以上の列挙定数の名前または数値を、等価の列挙オブジェクトに変換します。演算で大文字と小文字を区別するかどうかをパラメーターで指定します。戻り値は、変換が成功したかどうかを示します。以上の列挙定数の名前または数値を、等価の列挙オブジェクトに変換します。戻り値は、変換が成功したかどうかを示します。インスタンスの型コードを返します。instance.IConvertible.ToBoolean(IFormatProvider)基になる型に基づいて、現在の値をブール値に変換します。ビット符号なし整数に変換します。