Share via


&& 演算子 (C# リファレンス)

更新 : 2007 年 11 月

条件 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# 言語仕様」の次のセクションを参照してください。

  • 7.11.2 ユーザー定義の条件論理演算子

参照

概念

C# プログラミング ガイド

参照

C# の演算子

その他の技術情報

C# リファレンス