我使用Nullable(Of Integer)
和剛剛被蜇Nothing
正在施放到0,這是excatly使用Nullable(Of Integer)
時,我不想要什麼。奇的互動「如果」和可空(整數)
func1
下面的行爲不像我預期的那樣。我可以通過修改它來實現我的意願(請參閱func2
)。但我不明白爲什麼這是必要的(我想我可能會覺得很難記住這麼做)。
爲什麼不是func1
做我想要的?我想我以前遇到過這種情況,我寧願不再看到它。
Function func1(parameter As Integer) As Nullable(Of Integer)
Return If(parameter > 10, parameter, Nothing)
End Function
Function func2(parameter As Integer) As Nullable(Of Integer)
Return If(parameter > 10, parameter, DirectCast(Nothing, Integer?))
End Function
Sub Main
' Should be True
System.Console.WriteLine(func1(11).HasValue)
System.Console.WriteLine(func2(11).HasValue)
System.Console.WriteLine()
' Should be False
System.Console.WriteLine(func1(9).HasValue)
System.Console.WriteLine(func2(9).HasValue)
End Sub
我得到(在LINQPad運行此)的結果是:在你的情況
True
True
True
False
我會修改我的答案。 –
Brainmelt。謝謝@法比奧。我已經在我的回答中說明了:) –