2013-03-18 46 views
0

我偶然发现了这段代码,我真的不明白到目前为止。 我清楚地知道什么或运营商||确实像这些代码:或运算符在回报声明

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-声明和原因?

+1

这意味着相同的。 '如果a或b为真则返回true否则返回false' – Nick 2013-03-18 11:55:58

+4

我希望这是示例代码:'c'的属性名称,'c = value'的set-statement将导致StackOverflowException。 – 2013-03-18 12:05:19

回答

6

这将返回结果的值:

a || b 

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

if(a || b) 

if声明预期的东西,计算结果为布尔值,这两个值的||一样。

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

return (a || b); 

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

0

如果A或B是真实的

0

很简单,它将返回true,则返回的A或B是真的真(或同时为真)。

0

这等于:

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