当有两个管道(||)挨着时,这意味着什么

本文关键字:什么 意味着 管道 两个 | 更新日期: 2023-09-27 18:20:07

使用中的一个例子是…

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

两根管子在一起是什么意思?

当有两个管道(||)挨着时,这意味着什么

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

两个管道是短路逻辑OR运算符,它只在第一个操作数为false时计算第二个操作数。如果第二个操作数是一个重函数,您不想对其进行不必要的求值,或者它可能引发异常,例如:,则这一点尤其有用

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

在本例中,如果myListnull,则永远不会计算第二个操作数。如果我们使用一个管道,则第二个操作数将被求值,并将引发异常,因为myListnull

C#中的管道|(以及许多其他语言[除非在Java中使用单个管道作为逐位逻辑运算符])是逻辑运算符OR

双管||是快捷OR。这意味着,如果第一个条件为true,则操作将自动退出,因为其中一个条件已经为true。因此,OR必须为真。(因此,单个|意味着它将在评估之前首先检查所有条件,这比较慢,通常没有用处)。

在您的示例中:

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

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