当有两个管道(||)彼此相邻时,它意味着什么?

时间:2015-11-01 03:19:31

标签: c#

使用它的一个例子是......

if (temp < 30 || temp > 90) { MessageBox.Show("Error"); }

两个管道(||)共同意味着什么?

2 个答案:

答案 0 :(得分:2)

一个管道是一个逻辑OR运算符,它总是计算两个操作数。

两个管道正在使逻辑OR运算符短路,如果第一个操作数为false,则仅计算第二个操作数。如果第二个操作数是一个很重要的函数,你不想不必要地进行评估,或者它可以抛出一个异常,这个特别有用,例如:

if(myList == null || myList.Count == 0){
    //do something
}

在此示例中,如果myListnull,则永远不会评估第二个操作数。如果我们改为使用一个管道,那么第二个操作数将被评估并抛出异常,因为myListnull

答案 1 :(得分:1)

C#中的管道|(以及许多其他语言[除了将单个管道用作按位逻辑运算符时,例如在Java中])是逻辑运算符 OR

双管||是快捷方式OR。这意味着如果第一个为真,那么操作将自动退出,因为一个条件已经为真。因此,OR必须为真。 (因此,单个|意味着它将在评估之前首先检查所有条件,这种情况较慢且通常无用。)

在你的例子中:

if (temp < 30 || temp > 90) { MessageBox.Show("Error"); }
  • temp < 30:第一个条件
  • ||:逻辑或
  • temp > 90:第二个条件

这意味着,如果(第一个条件) OR (第二个条件)为真,则显示“错误”。