0

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

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

4

4 回答 4

6

这将返回结果值:

a || b

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

if(a || b)

一个if语句需要一些计算结果为布尔值的东西,这||两个值都是。

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

return (a || b);

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

于 2013-03-18T11:56:54.107 回答
0

如果 a OR b 为真,它将返回真

于 2013-03-18T11:56:16.330 回答
0

很简单,它会在 a 或 b 为真(或两者都为真)时返回真。

于 2013-03-18T11:56:38.573 回答
0

它等于:

public bool c
{
   get
   {
      if(a || b)
         return true;
      else
         return false;
   }
   set
   {
      c = value;
   }
}
于 2013-03-18T11:57:20.957 回答