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

C#のNull合体演算子(??)の使い方を徹底解説

Null合体演算子(??)は、null許容値型や参照型と組み合わせて使用される演算子です。片方のオペランドを、暗黙的な変換が可能な別のnull許容(または非null)値型オペランドの型へ変換する目的で利用されます。

動作はシンプルで、最初のオペランドの値がnullであれば2番目のオペランドの値を返し、nullでなければ最初のオペランドの値をそのまま返します。この特性により、nullチェックのif文を書かずに簡潔にデフォルト値を設定できるのが大きなメリットです。

基本構文

result = operand1 ?? operand2;

上記のコードでは、operand1がnullならoperand2の値がresultに代入され、nullでなければoperand1の値が代入されます。

サンプルコード

以下は、Null合体演算子を使った具体的な例です。

using System;

namespace Demo {

    class Program {

        static void Main(string[] args) {
            double? num1 = null;
            double? num2 = 6.32123;
            double num3;

            // num1 は null なので、代わりに 9.77 が代入される
            num3 = num1 ?? 9.77;
            Console.WriteLine(" Value of num3: {0}", num3);

            // num2 は null ではないので、num2 の値がそのまま代入される
            num3 = num2 ?? 9.77;
            Console.WriteLine(" Value of num3: {0}", num3);
            Console.ReadLine();
        }
    }
}

実行結果

Value of num3: 9.77
Value of num3: 6.32123

ポイントまとめ

  • null許容型との相性が良い: int?double? などのnull許容値型に対して、nullの場合の代替値を一行で指定できます。
  • if文の置き換え: 従来の「nullかどうかを判定してから値を代入する」処理を、より簡潔に記述できます。
  • 連結して使用可能: a ?? b ?? c のように複数つなげることで、左から順にnullでない最初の値を取得できます。

Null合体演算子を活用することで、null安全性を保ちながら可読性の高いコードを書くことができます。ぜひ日常的なC#プログラミングに取り入れてみてください。

  1. Android SQLiteでTINYINT型の値を使う方法【サンプルコード付きで解説】

    AndroidのSQLiteデータベースとは 具体的な手順に入る前に、AndroidにおけるSQLiteデータベースについて簡単に確認しておきましょう。SQLiteはオープンソースのSQLデータベースで、端末上のテキストファイルにデータを保存する仕組みです。Androidには標準でSQLiteデータベースの実装が組み込まれており、リレーショナルデータベースの機能をすべてサポートしています。 さらに、JDBCやODBCなどのような接続設定を行う必要は一切なく、そのままデータベースへアクセスできる点も大きな特徴です。 本記事では、AndroidのSQLiteでTINYINT型の値を扱う方法を、実際

  2. Android SQLiteでsmallint型の値を使う方法をわかりやすく解説

    AndroidにおけるSQLiteデータベースとは 例に入る前に、まずAndroidにおけるSQLiteデータベースについて確認しておきましょう。SQLiteはオープンソースのSQLデータベースで、デバイス上のテキストファイルにデータを保存します。AndroidにはSQLiteデータベースの実装が標準で組み込まれており、リレーショナルデータベースの機能をすべてサポートしています。また、JDBCやODBCのような接続設定を行う必要がなく、手軽にデータベースへアクセスできるのも大きな特徴です。 本記事では、AndroidのSQLiteでsmallint型の値を使用する方法を、実際のコード例とともに