VB.NET編譯:昏暗intResult作爲整數=無
Dim intResult As Integer = Nothing
C#不:
int intResult = null; // cannot convert
怎樣的結果終於去MSIL?
更是超過,VB代碼是OK:
If intResult > Nothing Then
編輯
OK,MS says:
分配沒有一個變量它設置爲它聲明的默認值類型。
但它並不能說明Nothing
比較 -。
VB.NET編譯:昏暗intResult作爲整數=無
Dim intResult As Integer = Nothing
C#不:
int intResult = null; // cannot convert
怎樣的結果終於去MSIL?
更是超過,VB代碼是OK:
If intResult > Nothing Then
編輯
OK,MS says:
分配沒有一個變量它設置爲它聲明的默認值類型。
但它並不能說明Nothing
比較 -。
Nothing
在VB.NET中實際上相當於C#中的default(Type)
。
所以int intResult = default(int);
是C#的等價物。
根據VB.NET Language Reference:「將Nothing賦予變量將其設置爲其聲明類型的默認值,如果該類型包含可變成員,則它們全部設置爲其默認值。
編輯:關於比較結果來Nothing
:我猜intResult > Nothing
被解釋爲intResult > 0
,由於intResult
編譯時類型是Integer
,其具有0。如果類型的默認值的intResult是不知道在編譯時(例如,它是盒裝的Integer
),我懷疑這不會編譯。
有關類似示例(Nothing < 2
),請參見VB.NET語言參考頁面底部的Community Content section。
在c#中,Ints不是可以爲空的。如果你想要的話可以使用System.Nullable<int>
簡稱是
int? result = null
。
另外,C#中的int類型不能爲null。 – 2010-12-07 13:57:40
@Chuck:在VB中都沒有。 – serhio 2010-12-07 13:58:13