?? も便利だけどもう1歩欲しいよね?

C# 2.0 では a ?? b という式は a が !null なら a になり、a が null なら b になる。Nullable 型だけではなく、三項演算の a != null ? a : b として利用することができる。
また -> を使っちゃうけど(笑) a -> b : c みたいな式で a != null ? a.b : c というかんじにメンバを引っ張るような記述もほしかった、とか思う人、いっぱいいるよね〜?
前述の三項演算による擬似コードですが、厳密には Nullable 構造体の場合は HasValue の値をみるような IL が生成されるのですが、実際に擬似コードのように記載しても動作します。これは Nullable 構造体に対して null と比較をすると生成される IL が HasValue と false の比較になるから・・・なのですが、他にも Nullable と、その対象型を比較したときの IL 生成や、box 命令を実行すると HasValue が false の場合には null が返るとか、自然なコードで自然な結果が得られる工夫が満載なので、普通の型とは違う動きをしていても気がつきにくいですね。(なにをいまさら)