ドキュメント-.NET-C# - ガイド - リファレンス - キー - 値の種類:列挙型

ylbtech-DOCS-.NET-C# - ガイド - リファレンス - キー - 値の種類:列挙型

 

1. トップへ戻ります
1、

列挙型(C#リファレンス)

enum キーワードは、Aは、異なる種類のセットが名前付き定数列挙子リストと呼ばれている含まれている列挙を宣言するために使用しました。

すべてのクラスの名前空間の名前空間に直接定義され、一般的に有利な列挙はそれにも同様に簡単にアクセスできますされています。 しかし、それはまた、クラスまたは構造体で列挙を入れ子にすることができます。

デフォルトでは、最初の列挙は、0の値、及び列挙子増加の各連続する1の値を有します。 例えば、以下の列挙に、  Sat の値  0、  Sun 値  1、  Mon 値  2、など。

C#の
列挙型の日{土、日、月、火、水、木、金};

列挙子は、次の例に示すように、デフォルト値を上書きする初期化子ことができます。

C#の
列挙日土= { 1、太陽、月、火、水、木、金}。

この列挙では、からの必須要素のシーケンス  1 の代わりに開始、 0。 一定のゼロ値を含むことが推奨されます。 詳細については、を参照してください列挙型

それぞれ、列挙型がいずれであってもよい有する整数値型ベースタイプの。 char型の  タイプは、列挙の種類に基づいてすることはできません。 デフォルトの基本型の列挙要素がある  int型列挙に別の整数(例えば、宣言する  バイト)、コロンは、識別子の種類を、次の例で使用されるように、図に続きます。

C#の
列挙日:バイト {土= 1、太陽、月、火、水、木、金}。

列挙型変数は、値の実質的に任意の種類の範囲内で割り当てることができ、これらの値は、名前付き定数に限定されるものではありません。

enum E デフォルト値は式で決定される  (E)0生成された値。

 リマーク

列挙子の名前にはスペースを含めることはできません

タイプの基礎は、各列挙子に割り当てられているどのくらいのストレージ容量が指定されました。 しかし、あなたがしたい  enum 整数に変換入力し、あなたは明示的な変換を使用する必要があります。 例えば、変換を使用して、次の文は、ます  Sun に変換する  ので、列挙子は  に割り当てられた  enum のint  int型変数。

C#の
INT X =(INT)Day.Sun。

もし場合  System.FlagsAttribute  アプリケーションがビットに含まれるべき  OR ツールの特定の特性と共に使用される場合、列挙要素の演算の組み合わせは、影響を与える場合に  enum 動作。 あなたは(のようなツールを使用すると  コンソール  クラスメソッドと式の評価を)、あなたは変化に気づくことができます。 (第3の例を参照)。

信頼性の高いプログラミング

任意の定数と同じように、値のすべてのコンパイル時に参照を列挙は、数値パラメータに変換されます。 これは、原因となる定数問題のバージョンで可能性の。

他の値は、新しいバージョンの列挙に割り当てられているか、またはソースコードに関連する問題につながる新しいバージョンで列挙メンバ値を変更します。 一般的に  切り替える  列挙値ステートメントを使用して。 他の要素が追加されている場合  enum タイプ、デフォルトのswitch文の一部を誤って選択することができます。

他の開発者があなたのコードを使用している場合は、そのいずれかに新しい要素を追加し  enum 、彼らがコードに対応すべきかについての指針を提供しなければならないタイプ。

次の例では、列挙を宣言されています  Day。 2つの列挙子は、明示的に整数に変換し、整数変数に割り当てられています。

C#の
パブリック クラスEnumTest 
{ 
    列挙日{日、月、火、水、木、金、土}; 

    静的 ボイドのmain()
    { 
        int型、X =(INT )Day.Sun。
        INT Y =(INT )Day.Fri。
        Console.WriteLineを(" サン= {0} " 、X)。
        Console.WriteLineを(" 金= {0} " 、Y); 
    } 
} 
/ * 出力:
   サン= 0 
   金= 5 
* /

次の例は、そのメンバーを宣言するベースタイプオプションを使用しています  enum タイプ  long。 ので、予めご了承ください列挙の基になる型であっても  long、明示的に型に変換列挙部材を用いて変換することはまだ long  。

C#の
パブリック クラスEnumTest2 
{ 
    列挙範囲:長い {マックス= 2147483648L、最小= 255L }。
    静的 ボイドメイン()
    { 
        長い X =(長い)Range.Max。
        長い Y =(長い)Range.Min。
        Console.WriteLineを(" 最大= {0} " 、X)。
        Console.WriteLineを(" 最小= {0} " 、Y); 
    } 
} 
/ * 出力:
   最大= 2147483648 
   分= 255 
* /

次のコード例は、例示する  System.FlagsAttribute  宣言  enum 使用及び効果特性。

C#の
// 属性フラグまたはFlagsAttributeを追加します。
【フラグ】
 パブリック 列挙CarOptions 
{ 
    // サンルーフ用フラグが0001である 
    サンルーフ= 0x01で// スポイラーのためのフラグが0010である 
    スポイラー= 0x02の// フォグライトのためのフラグが0100であり、 
    フォグライト= 0x04の// フラグTintedWindowsための1000である 
    TintedWindows = 0x08に
} 

クラスFlagTest 
{ 
    静的 ボイドメイン()
    { 
        //OR 0001と0100のビット単位は0101です 
        | = CarOptions.SunRoof CarOptionsオプション CarOptions.FogLights; 

        // フラグ属性が指定されているため、Console.WriteLineをディスプレイは
         // 各列挙要素の名前有するフラグに対応することを
         // 変数オプションの値1。
        Console.WriteLineを(オプション)。
        // 0101の整数値は5である 
        Console.WriteLineを((INT )オプション)。
    } 
} 
/ * 出力:
   サンルーフ、フォグライト
   5 
* /

 

注記

削除した場合  Flags、例としては、以下の値を表示します。

5

5

C#言語仕様

詳細については、  C#言語仕様を。 仕様記述言語は、信頼できる情報のC#の構文と使用方法です。

見ます

2、
2. トップへ戻ります
 
3. トップへ戻ります
 
4. トップ
 
5. トップ
1、
2、
 
6. トップへ戻ります
 
警告します 著者:ylbtech
出典:http://ylbtech.cnblogs.com/
この記事は、執筆者に属し、公園の合計をブログ、転載を歓迎するが、作者の同意なしに、このセクションで宣言されたそれ以外の場合は、保持され、記事ページの見かけ上の位置に元の接続を指定する必要があります法的責任を追及する権利を有します。

おすすめ

転載: www.cnblogs.com/storebook/p/11846255.html