null合体は大まかに次のように解釈されますreturn x, unless it is null, in which case return y
私はしばしば必要ですreturn null if x is null, otherwise return x.y
使うことができますreturn x == null ? null : x.y;
悪くはありませんがnull
、途中でいつも気になります-それは不必要に思えます。私はreturn x :: x.y;
、のようなものを好みます。ここで、後に続くものは、その::
前にあるものが評価されない場合にのみ評価されnull
ます。
これは、nullの合体とはほぼ逆で、簡潔なインラインnullチェックと混ざり合っているように見えますが、C#にはそのような演算子がないことはほぼ確実です。
そのような演算子を持つ他の言語はありますか?もしそうなら、それは何と呼ばれていますか?
(C#でメソッドを記述できることは知っています。使用return NullOrValue.of(x, () => x.y);
していますが、もっと良いものがあれば、それも見てみたいです。)