C# 返回语句中的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

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

如果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。