返回语句中的or操作符

本文关键字:or 操作符 语句 返回 | 更新日期: 2023-09-27 18:04:22

我偶然发现了这段代码,到目前为止我真的不理解。我清楚地知道或运算符||在以下代码中的作用:

bool a = true;
bool b = false;
if(a || b)
{
   //does something, if one of a/b is true
}

但这是一个结构,我不明白:

public bool c
{
   get
   {
      return a || b; //?
   }
   set
   {
      c = value;
   }
}

这个getter用return-statement返回什么,为什么?

返回语句中的or操作符

这将返回结果值

a || b

是一个布尔值。(注意,函数签名表明它返回一个bool。)这基本上与您的其他示例没有什么不同:

if(a || b)

if语句期望的结果是布尔值,而||对两个值的计算结果是布尔值。

通常可以认为return关键字具有与赋值语句相同的运算符优先级(它将值"赋"给堆栈上函数的返回路径)。所以你可以想象这里有一组隐含的括号:

return (a || b);

首先计算a || b,然后调用return的值

如果a或b为真,则返回真

非常简单,如果a或b为真(或两者都为真),则返回true

等于:

public bool c
{
   get
   {
      if(a || b)
         return true;
      else
         return false;
   }
   set
   {
      c = value;
   }
}