2016-11-04 109 views

回答

9

它們和new int?()完全一樣。

如果你只是指定一個變量,你通常根本不需要它。我只是使用:

int? x = null; 

例如。

我最經常需要這些表達式之一的時間是條件運算符,例如,

int y = ...; 
int? z = condition ? default(int?) : y; 

不能在該方案中使用null如編譯器不能推斷出表達式的類型。 (可以說這對語言來說是一種有益的補充,請介意你......)

+0

在我的情況是一個三元運算符,你例舉了var x = Int32.TryParse(entityObj.Prop,out result)?結果:(int?)null;我不得不這樣做,因爲這個屬性是以varchar形式存儲在第三方數據庫中的。謝謝@ jon-skeet –

0

基本上都是一樣的。默認值爲默認值。對於引用類型和可爲空的類型,它給出的值爲0時爲null。如果將decalre整數設爲可爲空,則也可以將其分配給(int?)null。你可以檢查IL代碼也只是爲了驗證。

相關問題