最近、Dropthings ポータルをダウンロードしたところ、コードに新しい構文が見つかりました。
ConfigurationManager.AppSettings["t"] ?? string.Empty
config...がNULLの場合、この値が使用されるNULLABLEタイプに似たものかどうか疑問に思っていました。MSDNでも同等の例が見つからなかったので、誰かが私の観察を明確にすることができますか?
最近、Dropthings ポータルをダウンロードしたところ、コードに新しい構文が見つかりました。
ConfigurationManager.AppSettings["t"] ?? string.Empty
config...がNULLの場合、この値が使用されるNULLABLEタイプに似たものかどうか疑問に思っていました。MSDNでも同等の例が見つからなかったので、誰かが私の観察を明確にすることができますか?
はい、あなたは正しいです、
a ?? b
が null でない場合、 および null のa
場合a
b
それはちょっと同等ですa == null ? b : a
?? _ 演算子はnull 合体演算子と呼ばれ、null許容値型または参照型の既定値を定義するために使用されます。オペランドが null でない場合は左側のオペランドを返します。それ以外の場合は、右側のオペランドを返します。
例
int? x = null;
// y = x, unless x is null, in which case y = -1.
int y = x ?? -1;
この演算子の簡単な説明については、 ScottGu のブログを参照してください。
コード内の??
は、実際には C# 言語に組み込まれている機能です。これはNull Coalescing Operatorと呼ばれます。任意の C# コードで使用できます。
string someValue = null;
Console.WriteLine(someValue ?? "Default Value"); //Default Value