C# 列挙型の使い方や書き方

## 列挙型とは
列挙型とは、値に分かりやすい名前をつけて管理するものです。
列挙型には先頭から順番に0、1、2…と値が割り振られます。
この値には好きな名前をつけることができます。
例えば、0は銅メダル、1は銀メダル、2は金メダルのように名前をつけることで、銅メダルを呼び出すと、0を呼び出すことができます。
## 列挙型の使い方や書き方

enum 列挙型名 { 識別子1, 識別子2, …};
enum 列挙型名

enumキーワードのあとに書いた名前が列挙型名になります。

識別子1,
識別子2,

識別子とは、値につける名前です。
識別子には先頭から順番に「 0 」から連番が割り振られます。
識別子1, 」の値は「 0 」「 識別子2, 」の値は「 1 」のように割り振られます。
つまり、この割り振られた値につける名前が識別子になります。
識別子に割り振られる値は整数値です。

using static System.Console;
class TestClass { enum Kago { イチゴ, ミカン, モモ }; }
enum Kago

enumキーワードのあとにKagoと書きます。
これにより、列挙型Kagoの宣言ができました。

{ イチゴ, ミカン, モモ };

ブロック内にイチゴ, ミカン, モモと書きます。
これにより、Kago型(列挙型)の
– 識別子1にイチゴ
– 識別子2にミカン
– 識別子3にモモ
が指定できました。

## 列挙型の識別子を取得する
列挙型の識別子を取得するには、列挙型名のあとに「.」(ドット演算子)を書き、そのあとに呼び出したい識別子を書きます。

列挙型名.識別子
列挙型名

呼び出したい識別子の列挙型名を書きます。

.

列挙型名のあとに、「 . 」(ドット演算子)を書きます。

識別子

「 . 」(ドット演算子)のあとに呼び出したい識別子を書きます。
これにより、指定した列挙型の識別子を呼び出せます。

using static System.Console;
class TestClass { enum Kago { イチゴ, ミカン, モモ }; static void Main() { WriteLine(Kago.イチゴ); WriteLine(Kago.ミカン); WriteLine(Kago.モモ); } }
イチゴ
ミカン
モモ
enum Kago { イチゴ, ミカン, モモ };

列挙体Kagoを宣言し、識別子「 イチゴ、ミカン、モモ 」を指定します。

Kago.イチゴ
Kago.ミカン
Kago.モモ

列挙型Kagoのあとに「 . 」(ドット演算子)を書き、そのあとにそれぞれ「 イチゴ、ミカン、モモ 」と書きます。
これにより、「 enum Kago { イチゴ, ミカン, モモ }; 」で列挙型Kagoに指定した、識別子「 イチゴ、ミカン、モモ 」が取得できます。

## 列挙型の値(数値)を取得する
列挙型の値を取得するには型を整数型(char型以外)に変換してから取得します。

(整数型)列挙型名.識別子
(整数型)

列挙型名の前に(整数型)(char型以外)を書きます。

列挙型名.識別子

列挙型名を書き、そのあとに「 . 」(ドット演算子)を書き、そのあとに値を取得したい識別子を書きます。
これにより、列挙型が指定した整数型に変換され、識別子に割り振られている値(数値)が取得できます。

using static System.Console;
class TestClass { enum Kago { イチゴ, ミカン, モモ }; static void Main() { WriteLine((int)Kago.イチゴ); WriteLine((int)Kago.ミカン); WriteLine((int)Kago.モモ); } }
0
1
2
enum Kago { イチゴ, ミカン, モモ };

列挙体Kagoを宣言し、識別子「 イチゴ、ミカン、モモ 」を指定します。

(int)Kago.イチゴ
(int)Kago.ミカン
(int)Kago.モモ

(int)と書き、そのあとにKagoと書きます。
これにより、列挙型Kagoはint型に変換されました。
Kagoのあとに「 . 」(ドット演算子)を書き、そのあとにそれぞれ「 イチゴ、ミカン、モモ 」と書きます。
これにより、enum Kago { イチゴ, ミカン, モモ };で列挙型Kagoに指定した、識別子「 イチゴ、ミカン、モモ 」に割り振られている値の「 0、1、2 」が取得できます。

## 列挙型の識別子に値を指定する
列挙型の識別子に好きなの値(整数値)を指定することができます。

enum 列挙型名 { 識別子1, 識別子2 = 値, 識別子3, …};
識別子2 = 値,

識別子2のあとに「 = 」を書き、そのあとに好きな値(整数値)を書きます。
これにより、識別子2に値が指定されます。

識別子3,

識別子2に指定した値の次の値(整数値)が割り振られます。

using static System.Console;
class TestClass { enum Kago { イチゴ, ミカン = 10, モモ }; static void Main() { WriteLine((int)Kago.イチゴ); WriteLine((int)Kago.ミカン); WriteLine((int)Kago.モモ); } }
0
10
11
ミカン = 10,

ミカンのあとに「 = 」を書き、そのあとに「 10 」と書きます。
これにより、識別子ミカンの値に「 10 」が指定できました。

(int)Kago.イチゴ
(int)Kago.ミカン
(int)Kago.モモ

列挙型Kagoの識別子「 イチゴ、ミカン、モモ 」の値を取得します。
識別子イチゴは「 0 」 
識別子ミカンは、指定した値の「 10 」
識別子モモは、ミカンの値の次の値の「 11 」
がそれぞれ取得できます。