導入
「曜日」「信号の色」「注文の状態」のように選択肢が決まっている値は、文字列や数値で持つよりenum(列挙型)で表すと、タイプミスを防ぎ、意図が明確になります。
図解
flowchart LR
E["enum Status"] --> S1["Pending(受付中)"]
E --> S2["Shipped(発送済)"]
E --> S3["Delivered(配達完了)"]
style E fill:#e1f5fe
サンプル
Status status = Status.Shipped;
// switch式と相性が良い
string message = status switch
{
Status.Pending => "受付中です",
Status.Shipped => "発送しました",
Status.Delivered => "配達完了",
_ => "不明",
};
Console.WriteLine(message); // 発送しました
// enum: 決まった選択肢に名前を付けた型
enum Status
{
Pending,
Shipped,
Delivered,
}
enum 名前 { 選択肢1, 選択肢2, ... }で定義するStatus.Shippedのように「型名.選択肢」で使う- 決まった値しか取れないので、タイプミスや不正値を防げる。
switch式と好相性
演習
Signal signal = Signal.Red;
// TODO: enum Signal(Red, Yellow, Green)を定義し、
// switch式で Red なら "止まれ" を action に入れて出力してください
___
- 期待される出力:
止まれ
ヒント1を見る
enum Signal { Red, Yellow, Green }
ヒント2を見る
string action = signal switch { Signal.Red => "止まれ", Signal.Yellow => "注意", Signal.Green => "進め", _ => "" }; Console.WriteLine(action);
まとめ
enumは決まった選択肢に名前を付けた型- タイプミス・不正値を型で防げる
switch式と組み合わせて分岐を明確に書ける
次回: 選択肢を組み合わせられる[Flags] enumとビット演算です。