猜的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