かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

伝搬合体

C# vNextの個人的なNo1は、自動プロパティの初期化+プライマリーコンストラクタなのですが、null伝搬演算子も慣れないとキモくて好きです。

class Person
{
    public string Name { get; set; }
}

----------------------------
var p = new Person();
var result = p
    // 伝搬!
    ?.Name
    // 伝搬!
    ?.ToUpper()
    // 合体! 
    ?? "NULL";
Console.WriteLine(result);

null合体演算子と使うことで、最終的に途中にnullがあったときのデフォルト値まで用意できて至れり尽くせりです。