以下の内容はhttps://rksoftware.hatenablog.com/entry/2025/08/02/190000より取得しました。


C# 14 の情報を振り返る その11 / C# 14 (.NET 10 世代の C# ) Null 条件付き割り当て / null-conditional-assignment

C# 14 (.NET 10 世代の C# ) の機能、Null 条件付き割り当て / null-conditional-assignment を見てみます。

■ これまでは

変数が null の場合に、メンバーを呼び出すと例外となることを回避するための Null 条件演算子はありました。しかし、プロパティやフィールドへの値の設定で null の例外を避けられる機能はありませんでした。

// 例えばこのように書く必要があった
if (c != null) c.P = "saitama";

■ これからは

プロパティやフィールドへの値の設定で使える Null 条件な機能が使えます。

// このように
c?.P = "saitama";

■ コードで例

C c = new() { P = "saitama" };
Console.WriteLine(c.P); // saitama

///
// これは以前からできた Null 条件演算子
///
// c?.P と書くと、c が null でも例外にならない (null が返る)
c = null;
try { Console.WriteLine(c.P); } catch (NullReferenceException) { Console.WriteLine("NullReferenceException caught!"); } // NullReferenceException caught!
Console.WriteLine(c?.P);    // null


// これは例外になる
try { c.P = "saitama"; } catch (NullReferenceException) { Console.WriteLine("NullReferenceException caught!"); } // NullReferenceException caught!

///
// そこで、これができるようになった null 条件付き割り当て
///
c?.P = "saitama";
Console.WriteLine(c?.P);    // null

// null でなければ普通に値が設定される
c = new();
c?.P = "saitama";
Console.WriteLine(c?.P);    // saitama

// Preview バージョンを指定していない場合のエラー
// 機能 'null conditional assignment' は現在、プレビュー段階であり、*サポートされていません*。プレビュー機能を使用するには、'preview' 言語バージョンを使用してください。

// 
class C
{
    public string? P { get; set; }
}

■ 今回のコード

GitHub に上げています。

github.com

■ 備えよう

新機能、いいですね。リリースに備えましょう。




以上の内容はhttps://rksoftware.hatenablog.com/entry/2025/08/02/190000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14