返回语句中的Or-Operator

时间:2013-03-18 11:54:19

标签: c#

我偶然发现了这段代码,到目前为止我真的不明白。 我清楚地知道or-operator ||在这些代码中做了什么:

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将返回什么返回语句以及为什么?

4 个答案:

答案 0 :(得分:6)

这将返回结果值:

a || b

这将是一个布尔值。 (请注意,函数签名表示它返回bool。)这与您的其他示例基本没有区别:

if(a || b)

if语句需要一些评估为布尔值的东西,两个值为||

您通常可以将return关键字视为具有与赋值语句相同的operator precedence(它将“赋值”给堆栈上函数的返回路径)。所以你可以在这里设想一组隐含的括号:

return (a || b);

首先评估a || b,然后在值上调用return

答案 1 :(得分:0)

如果OR b为真,则返回true

答案 2 :(得分:0)

很简单,无论是a还是b都是真的(或两者都是真的),它都会返回true。

答案 3 :(得分:0)

等于:

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