C# 2.0より??(はてな二つ)という結合演算子が追加されています。
null結合演算子(null coalescing operator)っていうらしいです。
この演算子は、nullでない最初の値を返します。
sqlのcoalesceみたいなものです。結構便利。
// vim:set ts=4 sw=4 et ws is nowrap ft=cs: using System; namespace Gsf.Samples.CSharp{ class NullCoalesceOperatorSample{ static void Main(){ // // ??は、nullでない最初の項目を返す。 // string s1 = null; string s2 = null; string s3 = "hoge"; Console.WriteLine(s1 ?? s2 ?? s3); // "hoge"と表示されます。 } } }
C# 2.0では、nullable型が導入されたのでそれとともに使用するのが
多いみたいです。nullable型というのは基本型にnullを格納できるようにするための
ものです。
int x = 10; // OK. int y = null; // NG. int? z = null; // OK.
んで、zの値を確認する場合に
int a = z ?? -1;
とかすると、値がnullの場合にも適切なデフォルト値を入れられるという
感じです。