2011-09-08 44 views
2

我剛纔看到這個項目中我從代碼項目下載:「聊齋志異」 C#語法

base.DialogResult = this.Result != null; 

我不認爲自己新的C#但是這一個是新的我。任何人都可以告訴我這個說法是怎麼回事?

編輯好的答案,謝謝。我以前從未使用過。

+0

我們不能稱之爲「奇怪」。就像「bool toto = this.Result!= null; base.DialogResult = toto;」 –

回答

9

如果你添加了parens,閱讀(和理解)會更容易。邏輯比較操作!=先賦值運算符=

base.DialogResult = (this.Result != null); 

相同的語句,甚至更詳細:

if (this.Result != null) 
    base.DialogResult = true; 
else 
    base.DialogResult = false; 
+0

這就像是一個短路如果陳述? –

+1

比較的結果是布爾值,並將該值分配給左側。 – Landei

+0

是的,這是一個短路如果陳述 –

4

this.Result != null計算結果爲布爾,truefalse

評估結果設置在基類的DialogResult成員中。

根本不奇怪,這只是一項任務。

3

!=(不等於)運算符優先於=(賦值)運算符。

+0

+1運算符的優先級總是要牢記。 – mdm

2

那是簡單,基本上它分配的表達

this.Result != null 

base.DialogResult 

的表達式使用在平等操作的結果,所以它返回真或假,這取決於閹羊this.Result爲空或不是

0

表示:

bool g = (this.Result != null); 
this.DialogResult = g;