C#列挙

C Lie Ju



C# は、プログラム、Web サイト、Android アプリケーション、ゲームなどの開発に使用されるプログラミング言語です。 C# は、組み込み関数を持つさまざまなライブラリとフレームワークをサポートしています。 Enum は列挙型であり、クラスです。クラスには、さまざまなデータ型と機能、つまりさまざまな変数を含むデータ構造があります。列挙は、コンパイル時にユーザーがデータ型を定義するすべての変数を知っている場合に特に役立ちます。 Enum には異なる値が含まれており、それらの値は変更できません。値を取得してコードで使用することはできますが、実行時に値を変更することはできません。これらは読み取り可能であり、変更することはできません。列挙は、その中のすべてのデータを文字列として扱います。整数値を使用する場合は、型キャストが必要です。列挙型はメモリとスペースが少なくて済むので便利です。

構文







列挙型 E_Name { 値_1、値_2、値_3、….. } ;


または



列挙型 E_Name { 値_1 = 3.4 、Value_2 = 90 、Value_3 = 8 、….. } ;


属性 「列挙型」 列挙を定義するキーワードです。ユーザー定義のデータ型が必要なときはいつでも、' 列挙 キーワードは、ユーザー定義のデータ型を作成するために使用されます。 ' E_name’ 列挙型クラスの名前です。このクラスの中では、中括弧にすべてのパラメーターと値が含まれます。引数を書くことしかできず、コンパイラはそれらに値を割り当てます。デフォルトでは、最初の値から開始してインデックス 0 に格納され、次の値は 1 に格納されます。



引数のデータ型に制限はありません。整数値、浮動小数点値、文字、ブール値、または文字列を割り当てることができます。ただし、データ型を値に割り当てない場合は、値が格納されている定数値が自動的に割り当てられます。





種類

C# 言語には、2 種類の列挙型があります。これらを以下に示します。

    • 単純な列挙
    • フラグ列挙

単純な列挙

このカテゴリでは、「enum」クラスのメンバーに単一の値が含まれます。



フラグ列挙

このカテゴリでは、flag enum クラスのメンバーに複数の値、またはビットごとの演算子または OR (|) を使用した複数の値が含まれます。

例 1:

この例では、単純な「enum」クラスを使用して、変数に割り当てずに値を取得する方法を学習します。


C# プログラミング言語でコーディングするには、最初に新しいプロジェクトを作成してからコーディングを開始する必要があります。コンソール アプリケーションを作成する場合は、クラスと main() 関数を自動的に作成するコンソール アプリケーション、C# フレームワークを選択する必要があります。コードで上記の単純な用語「enum」を使用するには、内部クラス「Program」を定義して初期化します。列挙型はキーワードであり、列挙型の直後の単語は「fruit_names」です。中括弧内で、必要なリストを定義します。ここでは、enum クラスに 4 つの果物の名前が含まれています。 main() メソッド内のすべての関数を呼び出します。 static main() 内で、すべての列挙値を次々に表示します。このコードでは、値ではなく、enum 引数のみを記述します。そのため、値として格納されているインデックスが自動的に割り当てられます。

Console.writeline() 関数を使用して出力画面に書き込み、メッセージを表示した後、カーソルを次の行に移動します。このステートメント内にメッセージを書き、それを「+」記号で連結して、その定義されたメッセージと値を示します。タイプ「列挙型名」を連結した後、(.) を使用して特定のタイプの「列挙型」に対処します: fruit_names.Apple.次に、次のステートメントで、再び (+) 記号を使用して、タイプをメッセージとそれが格納されているインデックスに連結します。インデックスを取得するには、まず型キャストを実行して整数に変換する必要があります。 C# 型では、かっこを使用するだけでキャストが行われます。括弧内に、型キャストしたいデータ型を書きます。括弧の外側に、変数名、つまり (int)var_name を書きます。このようにして、列挙値と格納されているインデックスを含むメッセージを取得できます。

これを 3 回繰り返します。メッセージと列挙型を変更するだけです。列挙により、コードがきれいに見えます。 Console.ReadKey() 関数は、コンソールを閉じるまでコンソールをアクティブに保ちます。このステートメントを使用しないと、コンソールが 1 回点滅してから消えます。

例 2:

このプログラムでは、クラスの属性に異なる値を割り当てることにより、単純な「列挙型」クラスを実装します。


2 番目の例では、コンソール アプリケーションのプロジェクトを再度作成し、キーワード「enum」を使用して内部クラス「Program」内に列挙を定義しました。今回は、値が異なるクラス「アイテム」が含まれています。 main() 関数内で、enum クラス「items」のすべての要素にアクセスします。 console.writeLine() メソッドを利用しましょう。含まれているすべてが表示されます。最初にメッセージを表示し、次に再び Console.WriteLine() 関数を呼び出して、最初のアイテムと数量を表示します。端末に表示するテキストを定義し、items.chairs と連結します。列挙型クラス「items」の最初のアイテム (椅子) を取得します。このアイテムの数量を取得するには、enum クラスのデータが文字列の形式であるため、キャストを行う必要があります。したがって、それらの値にアクセスするには、最初にキャストを入力します。 「chairs」の値を取得するには、(int)items.chairs のようにキャストします。それ以外の場合、値ではなくアイテム「chairs」のみが取得されます。ここで、気がつけば「\n」と「\t」という記号が使われています。 「\t」を使用してタブ スペースを指定し、「\n」を使用してカーソルを次の行に移動します。この手順を 2 回繰り返します。列挙値を更新するだけです。最後に、console.ReadKey() を記述してコンソールをアクティブに保ち、出力を確認できるようにします。

例 3:

このシナリオでは、「フラグ」列挙型を利用します。


単純な列挙では、enum クラスのメンバーに 1 つの値しか割り当てることができません。しかし、フラグ列挙を使用すると、列挙型クラスの 1 つのメンバーに複数の値を割り当てることができます。このタイプの列挙は、さまざまな選択肢を扱う場合や、複数の値がある場合に役立ちます。フラグ列挙を使用するには、列挙型クラスを定義する前に、[flags] を記述してから、列挙型クラス「flag_example」を記述する必要があります。これで、このクラス内で、1 つのメンバーに複数の値を簡単に割り当てることができます。この例では、属性「ドライバー」に 2 つの値を割り当て、(|) 演算子を使用して両方の値を区切りました。次に、main() 関数で変数「var flags」を宣言します。コンソールに複数のアイテムを表示するには、or (|) 演算子を使用してから、クラス名とアイテム名を使用して列挙型アイテムを呼び出します。メッセージを表示するには、Console.WriteLine() メソッドを呼び出します。フラグの値を表すには、別の Console.Write() に「フラグ」を記述します。次のステートメントでは、コンソールを閉じるまでコンソールを開いたままにする Console.ReadKey() 関数が呼び出されます。

結論

このガイドでは、列挙型とは何か、C# 言語で列挙型をどのように利用できるかについて学びました。列挙により、コードが単純で読みやすくなります。 enum クラスの値は変更できないためです。値の変更を必要としないような種類のデータを扱う場合、これは私たちに利益をもたらします。さまざまなコードを使用して、列挙の構文とタイプについて説明しました。列挙はメモリ消費量が少なく、使いやすいです。