|| 演算子 (C# リファレンス)
更新 : 2007 年 11 月
条件 OR 演算子 (||) では bool オペランドの論理 OR が実行されますが、必要な場合だけ、2 番目のオペランドが評価されます。
解説
x || y
この演算は次の演算に相当します。
x | y
ただし、x が true の場合、y は評価されません。この場合、OR 演算の結果は y の値にかかわらず true になるためです。これは、"ショートサーキット" 評価と呼ばれます。
条件 OR 演算子はオーバーロードできませんが、通常の論理演算子および true 演算子と false 演算子のオーバーロードは、条件論理演算子の制約付きのオーバーロードとも見なされます。
使用例
最初のオペランドだけが評価される || を使用した式の例は、次のとおりです。
class NullCoalesce
{
static int? GetNullableInt()
{
return null;
}
static string GetStringValue()
{
return null;
}
static void Main()
{
// ?? operator example.
int? x = null;
// y = x, unless x is null, in which case y = -1.
int y = x ?? -1;
// Assign i to return value of method, unless
// return value is null, in which case assign
// default value of int to i.
int i = GetNullableInt() ?? default(int);
string s = GetStringValue();
// ?? also works with reference types.
// Display contents of s, unless s is null,
// in which case display "Unspecified".
Console.WriteLine(s ?? "Unspecified");
}
}