&& 演算子 (C# リファレンス)
条件 AND 演算子 (&&) では bool オペランドの論理 AND が実行されますが、必要な場合のみ、2 番目のオペランドが評価されます。
解説
x && y
この演算は次の演算に相当します。
x & y
ただし、x が false の場合、y は評価されません。この場合、AND 演算の結果は y の値にかかわらず false になるためです。 これは、"ショートサーキット" 評価と呼ばれます。
条件 AND 演算子はオーバーロードできませんが、通常の論理演算子および true 演算子と false 演算子のオーバーロードは、条件論理演算子の制約付きのオーバーロードとも見なされます。
使用例
&& を使用した式の最初のオペランドだけが評価される例を次に示します。
class LogicalAnd
{
static bool Method1()
{
Console.WriteLine("Method1 called");
return false;
}
static bool Method2()
{
Console.WriteLine("Method2 called");
return true;
}
static void Main()
{
Console.WriteLine("regular AND:");
Console.WriteLine("result is {0}", Method1() & Method2());
Console.WriteLine("short-circuit AND:");
Console.WriteLine("result is {0}", Method1() && Method2());
}
}
/*
Output:
regular AND:
Method1 called
Method2 called
result is False
short-circuit AND:
Method1 called
result is False
*/
C# 言語仕様
詳細については、「C# 言語仕様」を参照してください。 言語仕様は、C# の構文と使用法に関する信頼性のある情報源です。