我偶然发现了这段代码,到目前为止我真的不明白。
我清楚地知道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将返回什么返回语句以及为什么?
答案 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;
}
}