2010-11-02 57 views
2

有人可以告訴我,如果我明白這個權利。我理解這個權利嗎?比較和分配一行代碼?

private void SetFontWeight(FontWeight weight) 
     { 
      boldButton.IsChecked = weight == FontWeights.Bold; 
     } 

像什麼讓我是一切都在一條線。就像他們正在比較然後分配一樣。

所以有這樣的一些命令。從邏輯上看,它好像它會像

boldButton.IsChecked = (weight == FontWeights.Bold); 

這是正確的,它首先做比較,然後分配?

或者我猜的很長的路將是

if(weight == FontWeights.Bold) 
{ 
    boldButton.IsChecked = true; 
} 
else 
{ 
    boldButton.IsChecked = false; 
} 

我也覺得有點奇怪,他們比較一個結構(FontWeights)的類。我會雖然它會像

weight.IsBold == FontWeights.Bold 
+4

喜歡,她說,喜歡,喜歡,喜歡,喜歡,電影? – jason 2010-11-02 03:45:02

+0

我不認爲人們會這樣寫*。 – EboMike 2010-11-02 03:46:46

+1

嘿,讓chobo2休息一下;至少看起來似乎有一些拼寫,標點和類似的句子結構,老兄! – 2010-11-02 03:57:30

回答

0

我敢肯定,這是相當於

boldButton.IsChecked = (weight == FontWeights.Bold); 

這樣的事情是從C(原本)繼承,它必須使用括號來分配第一:

if ((x = getcode()) == BAD_CODE) ... 

就您對比較的疑慮而言,這只是允許您重寫比較運算符時變得可能的奇妙事物之一。

實際上,有些人會認爲這個例子使更具有的意義,因爲您不必擔心它是否必須與IsBold屬性進行比較。 clas應該(也確實)弄明白這一點,因爲你用「粗體」的方式比較它:-)

0


就我的理解而言,平等檢查將首先執行。不管你是否放上括號。
示例代碼;

public boolean SampleFunction() 
{ 
int a = 1; 
int b = 2; 
boolean c= false; 
c= a==b; 
return c; 
} 

這將首先檢查a是否等於b。所以它會返回布爾值並將其分配給c。