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

C#の「??」演算子とは?null合体演算子の意味と使い方をわかりやすく解説

C#における2つの疑問符を並べた記号 ?? は、null合体演算子(null-coalescing operator)と呼ばれるものです。この演算子は、左辺のオペランドがnullでない場合はその値をそのまま返し、nullである場合には右辺のオペランドを評価して、その結果を返します。また、左辺がnullでないと評価された場合、右辺は一切評価されないという特徴もあります。

null許容型と??演算子の関係

null許容型(nullable型)は、「値が未定義である状態」と「型のドメインに属する通常の値」のどちらも表現できる型です。左辺のオペランドがnull許容型である場合に、??演算子を使うことで適切なデフォルト値を返すことができます。

もし??演算子を使わずに、null許容値型を非null許容値型へ代入しようとすると、コンパイル時エラーが発生します。さらに、無理にキャストして代入した場合でも、実行時にInvalidOperationException例外がスローされてしまいます。こうした問題を回避するために、??演算子が役立ちます。

null合体演算子(??)のメリット

??演算子を使用することで得られる主な利点は以下の通りです。

  • null許容の項目(値型・参照型の両方)に対して、デフォルト値を簡潔に定義できる。
  • 実行時のInvalidOperationException例外の発生を防ぐことができる。
  • 冗長なif文によるnullチェックを大幅に削減できる。
  • 参照型と値型のどちらに対しても利用可能である。
  • コードが整理され、可読性が向上する。

サンプルコード

以下は、??演算子の基本的な使い方を示すC#のコード例です。

using System;
namespace MyApplication{
    class Program{
        static void Main(string[] args){
            int? value1 = null;
            int value2 = value1 ?? 99;
            Console.WriteLine("Value2: " + value2);
            string testString = "Null Coalescing";
            string resultString = testString ?? "Original string is null";
            Console.WriteLine("The value of result message is: " + resultString);
        }
    }
}

この例では、まずnull許容のint型変数 value1 にnullを代入しています。次に value1 ?? 99 と書くことで、value1がnullのため右辺の99が採用され、value2には99が格納されます。一方、文字列の testString はnullではないため、testString ?? "Original string is null" の結果は testString の元の値がそのまま使われます。

実行結果

上記のプログラムを実行すると、出力は以下のようになります。

Value2: 99
The value of result message is: Null Coalescing

このように、??演算子を使えばnullチェックの処理を1行でスマートに記述でき、安全かつ読みやすいコードを実現できます。null許容型を扱う場面では積極的に活用するとよいでしょう。

  1. スケーラブルとは?意味からビジネスでの活かし方までわかりやすく解説

    同僚のプレゼンテーションが終わり、控えめな拍手と満足げなざわめきが会議室に広がります。上司がテーブルを見回し、誰かが議論を切り出すのを待つ一瞬の静寂。気まずい沈黙になる前に、ある質問の声が上がりました。「ゲイリー、君の提案は包括的で野心的だ。でも、スケールできるのかね?」 スケーラビリティの定義 「スケーラブル(scalable)」、あるいは「スケーラビリティ(scalability)」は、主にビジネスや金融の世界でよく使われる用語で、プロセス、製品、ビジネスモデル、サービス、システム、データサイズ、活動などに適用されます。これは成長に関する概念であり、特定の製品やサービスの実現可能性と価値を

  2. Twitterのバイオとは?意味・変更方法と魅力的な例文を徹底解説

    Twitterのバイオとは?その意味と役割Twitterのバイオ(自己紹介文)は、プロフィール設定を構成する重要な要素のひとつです。プロフィール画面では、名前とハンドルネーム(@ユーザー名)の下に表示されます。自分がどのような人物なのかを短く紹介したり、興味や関心を伝えたり、自分のビジネスをアピールしたりするために活用しましょう。バイオの変更方法バイオはプロフィールの編集からいつでも変更できます。ハッシュタグ(#)や@ユーザー名を組み合わせれば、より多くの人に自分のアカウントを見つけてもらいやすくなります。なお、バイオにはスペースを含めて160文字までという文字数制限がある点に注意してください