使用它的一个例子是......
if (temp < 30 || temp > 90) { MessageBox.Show("Error"); }
两个管道(||)共同意味着什么?
答案 0 :(得分:2)
一个管道是一个逻辑OR运算符,它总是计算两个操作数。
两个管道正在使逻辑OR运算符短路,如果第一个操作数为false
,则仅计算第二个操作数。如果第二个操作数是一个很重要的函数,你不想不必要地进行评估,或者它可以抛出一个异常,这个特别有用,例如:
if(myList == null || myList.Count == 0){
//do something
}
在此示例中,如果myList
为null
,则永远不会评估第二个操作数。如果我们改为使用一个管道,那么第二个操作数将被评估并抛出异常,因为myList
是null
。
答案 1 :(得分:1)
C#中的管道|
(以及许多其他语言[除了将单个管道用作按位逻辑运算符时,例如在Java中])是逻辑运算符 OR 。
双管||
是快捷方式OR。这意味着如果第一个为真,那么操作将自动退出,因为一个条件已经为真。因此,OR必须为真。 (因此,单个|
意味着它将在评估之前首先检查所有条件,这种情况较慢且通常无用。)
在你的例子中:
if (temp < 30 || temp > 90) { MessageBox.Show("Error"); }
temp < 30
:第一个条件||
:逻辑或temp > 90
:第二个条件这意味着,如果(第一个条件) OR (第二个条件)为真,则显示“错误”。