C# 返回语句中的Or运算符
我偶然发现了这段代码,到目前为止我还真的不明白。 我清楚地知道or运算符C# 返回语句中的Or运算符,c#,C#,我偶然发现了这段代码,到目前为止我还真的不明白。 我清楚地知道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; } } 这个g
|
在以下代码中的作用:
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将返回什么以及返回语句的原因?如果a或b为真,它将返回真如果a或b为真,它将返回真如果a或b为真,它将返回真非常简单,如果a或b为真(或两者都为真)。非常简单,它将返回a或b为真(或两者都为真).这将返回以下结果值:
a || b
这将是一个布尔值。(请注意,函数签名表示它返回一个bool
)这与您的其他示例基本相同:
if(a || b)
if
语句要求某个值的计算结果为布尔值,而|
对两个值的计算结果为布尔值
通常可以将return
关键字视为具有与赋值语句相同的属性(它将值“赋值”到堆栈上函数的返回路径)。因此,您可以想象一组隐含的括号:
return (a || b);
首先计算
a | | b
,然后调用该值的return
。这将返回以下结果值:
a || b
这将是一个布尔值。(请注意,函数签名表示它返回一个bool
)这与您的其他示例基本相同:
if(a || b)
if
语句要求某个值的计算结果为布尔值,而|
对两个值的计算结果为布尔值
通常可以将return
关键字视为具有与赋值语句相同的属性(它将值“赋值”到堆栈上函数的返回路径)。因此,您可以想象一组隐含的括号:
return (a || b);
首先计算a | | b
,然后调用该值的return
。它等于:
public bool c
{
get
{
if(a || b)
return true;
else
return false;
}
set
{
c = value;
}
}
等于:
public bool c
{
get
{
if(a || b)
return true;
else
return false;
}
set
{
c = value;
}
}
意思是一样的
如果a或b为true,则返回true,否则返回false
我希望这是示例代码:如果属性名为c
,则c=value
的set语句将导致StackOverflowException。这意味着相同如果a或b为true,则返回true,否则返回false
我希望这是示例代码:如果属性名为c
,则c=value
的set语句将导致StackOverflowException。