|| 演算子は論理和を実行します。
最初に左側のオペランドを評価し、それが true の場合、式は true になります。左のオペランドが false の場合、2 番目のオペランドが評価されます。
次の例をコンソール アプリケーションとして実行すると、何が起こるかがわかります。
using System;
namespace OrOperand
{
class Program
{
static void Main(string[] args)
{
DisplayResult(true, true);
DisplayResult(true, false);
DisplayResult(false, true);
DisplayResult(false, false);
}
private static void DisplayResult(bool left, bool right)
{
_left = left;
_right = right;
Console.WriteLine("Running " + left + " || " + right);
if (Left() || Right())
{
Console.WriteLine(_left + " || " + _right + " is true");
}
else
{
Console.WriteLine(_left + " || " + _right + " is false");
}
}
static bool _left = true;
static bool _right = false;
static bool Left()
{
Console.WriteLine("Left called");
return _left;
}
static bool Right()
{
Console.WriteLine("Right called");
return _right;
}
}
}
これは出力されます:
Running True || True
Left called
True || True is true
Running True || False
Left called
True || False is true
Running False || True
Left called
Right called
False || True is true
Running False || False
Left called
Right called
False || False is false