猜的i
結果:Visual Basic中的可空類型推斷 - 是否在某處存在文檔並且可以使其更加嚴格?
Dim i As Integer? = If(True, Nothing, 3)
答:0
如果你希望得到Nothing
,必須修改整數參數:
Dim i As Integer? = If(True, Nothing, New Nullable(3))
正如你所看到的,在Nullable(Of T)
之前,來自第二和第三參數的結果類型推斷優選T
。對我而言,邏輯是相反的。
如果可以找到這些推理/優先級規則的類型(尤其是Nullable
)可以找到文件?我檢查了幫助type inference
,Nullable
和If
,但我找不到任何東西。
甲窺視到鄰居:c#(很好)拒絕,錯誤
無法確定條件表達式的CS0173型因爲
'<null>'
之間的隱式轉換以編譯的等效int? i = true ? null : 3;
和'int'
什麼是安全的,避免陷入捕獲看n在vb.net。但在VB中,即使Option Infer Off
+ Option Strict On
也沒有任何錯誤拋出的效果,這可以幫助程序員避免被忽視的錯誤。 或者有沒有辦法在vb.net中產生錯誤?
@GSerg - 哈,我總是想知道是否有一個有效的理由可以存在,我會投票結束我自己的問題。現在我投了... – miroxlav