C# の列挙型

PHPz
PHPzオリジナル
2024-09-03 15:15:061060ブラウズ

Enum は C# の予約キーワードであり、列挙を表します。列挙型は、一連の名前付き定数を保持する C# のユーザー定義型です。セット内の各定数には値 (デフォルトでは整数) があります。定数には、名前と値の両方を通じてアクセスできます。したがって、列挙型内で名前を重複させることはできません。 enum の構文は単純です。これはキーワード enum で始まり、変数名と中括弧で囲まれた一連の名前付き定数が続きます。もちろんセミコロンで終わります。

構文:

enum <enum_name> {<set_of_named_constants>};

例:

コード:

enum Day { Sun, Mon, Tue, Wed, Thu, Fri, Sat };
enum Month { Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec };

C# での Enum の仕組み

列挙型には C# の基礎となる型があります。これは、列挙型内のすべての定数に、基になる型の値が割り当てられることを意味します。 C# の列挙型のデフォルトの基礎となる型は整数です。

上記の enum Day では、7 つの定数が宣言されています。デフォルトの基礎となる型は整数です。したがって、すべての定数には整数値が割り当てられます。デフォルトでは、値は 0 から始まります。したがって、Sun には 0 が割り当てられます。月には 1 が割り当てられ、火には 2 が割り当てられます。

別の例を見てみましょう。 Sun に値 1 を割り当てます。これにより、コンパイラは割り当てを 0 ではなく 1 から開始するように強制されます。その後、値 8 を Thu に割り当てます。その後、コンパイラは 8 以降の割り当てを続行します。

例 #1

コード:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
};
public static void Main()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine((Day)i);
}
}
}

出力:

C# の列挙型

現実世界の例としては、クライアントのジャーニーにおけるさまざまな段階が考えられます。もちろん、すべての定数を個別に宣言して、対応する整数値を割り当てることもできますが、列挙型を使用すると、各段階で整数値を覚える手間が省かれ、コードがはるかに理解しやすくなります。

例 #2

コード:

using System;
public class Program
{
enum ClientJourney
{
Introduced = 1,
UnderReview = 2,
Reviewed = 3,
Documentation = 4,
Onboarded = 5,
Declined = 6,
Deboarded = 7
};
public static void Main()
{
Console.WriteLine("The various stages in the journey of a client are:\n");
foreach (string str in Enum.GetNames(typeof(ClientJourney)))
{
Console.WriteLine(str);
}
}
}

出力:

C# の列挙型

C# の列挙メソッド

C# の enum メソッドを以下に示します。

1. GetName(Type, Int32)

GetName メソッドは、列挙型の指定された値にマップされた名前付き定数を返します。その値に名前付き定数がない場合は、空の文字列を返します。

このメソッドは 2 つのパラメータを必要とします。1 つは型、つまり列挙型そのもので、もう 1 つは指定された値です。

上記の Days の同じ例では、GetName メソッドを通じて名前付き定数を出力します。

コード:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine(Enum.GetName(typeof(Day), i));
}
}
}

出力:

C# の列挙型

2. GetNames(型)

上記の例では、列挙型の名前付き定数をすべて取得するために for ループを使用する必要がありました。 GetName メソッドは、単一または限られた数の名前付き定数が必要な場合に便利です。

すべての名前付き定数を取得する別のメソッド GetNames() があります。入力パラメータとして列挙型を受け取ります。

上記の Days の同じ例では、GetNames メソッドを通じて名前付き定数を出力します。

コード:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
foreach(string namedConstant in Enum.GetNames(typeof(Day))){
Console.WriteLine(namedConstant);
}
}
}

出力:

C# の列挙型

3. GetValues(型)

GetValues() メソッドは、列挙型の名前付き定数のそれぞれにマッピングされた基になる値を取得するために使用されます。

上記の Days の同じ例では、GetNames メソッドを通じて名前付き定数を出力します。

コード:

using System;
public class Program
{
enum Day
{
Sun = 1,
Mon,
Tue,
Wed,
Thu = 8,
Fri,
Sat
}
;
public static void Main()
{
foreach (int i in Enum.GetValues(typeof(Day)))
{
Console.WriteLine(i);
}
}
}

出力:

C# の列挙型

C# の Enum のルール

C# の列挙型のルールを以下に示します。

  • 列挙型は型であり、変数/定数/メソッドではありません。
  • 列挙型の名前付き定数は複製できません。それらは一意である必要があります。
  • 列挙型の基礎となる型を char にすることはできません。
  • 列挙型のデフォルトの基礎となる型は整数です。
  • デフォルトでは、列挙型の名前付き定数に割り当てられる値は 0 から始まり、連続して名前が付けられる定数ごとに 1 ずつ増加します。

C# における Enum の利点

以下に挙げる利点を示します:

  • 列挙型は非常に優れたコーディング方法です。これらは、アプリケーションまたはプログラムの定数のセットを定義するために使用されます。したがって、セットは一定のままであり、特に複数の開発者が関与する大規模なアプリケーションの場合、プログラム内の混乱が回避されます。
  • 列挙型を使用できるシナリオは数多くあります。曜日、月、温度の換算率、タイムゾーンの換算係数、またはアプリケーションのマスター テーブル データ。これにより、コードが読みやすくなり、理解しやすくなります。

結論

このように、C# での enum の使用を見てきました。これがどのように機能し、実際にどのように使用できるのかを見てきました。 enum を使用するときに従うべきルールを理解しました。いくつかのメソッドは、列挙型へのアクセスとフォーマットに役立ちます。コード内ではできるだけ列挙型を使用することをお勧めします。これは、コーディングの優れた実践方法を観察し、列挙型についても学ぶのに役立ちます。

以上がC# の列挙型の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:C# ローカル関数次の記事:C# ローカル関数