C#
 Computer >> コンピューター >  >> プログラミング >> C#

C# 8.0のスイッチ式(switch式)とは?新構文の書き方を実例で解説

C# 8.0で導入されたスイッチ式(switch expression)は、式のコンテキスト内でswitchのような動作(セマンティクス)を実現できる新しい構文です。

従来のswitchは選択ステートメントであり、マッチ式とのパターンマッチングの結果に基づいて、候補の中から実行する1つのswitchセクションを選びます。

また、1つの式を3つ以上の条件で判定したい場合には、switchステートメントがif-else構文の代替としてよく使われてきました。スイッチ式を使うことで、このような処理をより簡潔に記述できます。

スイッチ式の新しい書き方

スイッチ式では、=>(アロー演算子)を使って各ケースの結果を直接返すため、コードが大幅に短くなります。

var message = c switch{
    Fruits.Red => "The Fruits is red",
    Fruits.Green => "The Fruits is green",
    Fruits.Blue => "The Fruits is blue"
};

サンプルコード:従来のswitch文とスイッチ式の比較

以下の例では、同じ処理を従来のswitch文とスイッチ式の両方で記述し、その違いを確認できます。

class Program{
    public enum Fruits { Red, Green, Blue }
    public static void Main(){
        Fruits c = (Fruits)(new Random()).Next(0, 3);
        // 従来のswitch文
        switch (c){
            case Fruits.Red:
                Console.WriteLine("The Fruits is red");
                break;
            case Fruits.Green:
                Console.WriteLine("The Fruits is green");
                break;
            case Fruits.Blue:
                Console.WriteLine("The Fruits is blue");
                break;
            default:
                Console.WriteLine("The Fruits is unknown.");
                break;
        }
        // C# 8.0のスイッチ式
        var message = c switch{
            Fruits.Red => "The Fruits is red",
            Fruits.Green => "The Fruits is green",
            Fruits.Blue => "The Fruits is blue"
        };
        System.Console.WriteLine(message);
        Console.ReadLine();
    }
}

実行結果

The Fruits is green
The Fruits is green

スイッチ式のメリット

  • 簡潔さ: casebreakが不要になり、1つの式として値を返せるため、コード量が大幅に減ります。
  • 代入への適合性: 結果を変数に直接代入できるため、宣言的なスタイルで記述できます。
  • 網羅性チェック: コンパイラがすべてのケースをカバーしているかを検証してくれるため、漏れによるバグを防ぎやすくなります。

このように、C# 8.0のスイッチ式を活用することで、条件分岐のコードをより読みやすく、安全に書くことができます。

  1. 新しいGmailアプリを自分好みにカスタマイズする方法

    新しいGmailアプリに追加された数々の改良は、実は予想通りと言えるものでした。以前、Googleは受信トレイアプリ「Inbox」を終了する代わりに、Gmailアプリの機能強化を進めることを発表していました。新版Gmailアプリは従来と同じく使いやすいままですが、見た目が大きく変わり、メニューの場所もこれまでとは異なります。「あれ?設定はどこにあったっけ?」と戸惑う方も多いはず。そこでこの記事では、Gmailアプリを自分好みにパーソナライズするための便利な設定方法をわかりやすく解説します。カテゴリタブを追加・削除する方法PC版と同様に、スマホ版でも受信トレイに表示するカテゴリを自由に追加・削除

  2. USB-Cへの切り替え完全ガイド:メリットとおすすめアダプターを徹底解説

    USB-Cは、急速に標準的な接続ポートとして普及しつつあります。USB 3.0による高速化の次のステップとして、USB-Cはより速く、より小型で、より使いやすい接続を実現しました。iPhoneやiPadで採用されているAppleのLightningコネクタと同様に、USB-Cはリバーシブル(表裏の区別がない)設計となっています。このコネクタはデータ転送と給電の両方に対応しており、従来のUSB規格を策定してきたUSB Implementers Forum(USB-IF)によって開発されました。Dell、Apple、Intel、Microsoft、Samsungなど、主要テック企業がメンバーに名を