2013-03-18 44 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; 
    } 
}