可能是重复的问题:
Bug?如果您通过三元运算符将值分配给可空整数,它将无法变为null
虽然这个问题看起来像许多其他问题的重复,但实际上它是出于特定的原因而被提出的。例如,看看下面的代码:
Dim n As Integer? = If(True, Nothing, 1)
在这段代码中,三元表达式应该返回Nothing,但它将n设置为0。如果这是C#,我可以说
default(int?)
,它会完美地工作。现在看起来我必须放弃三元表达式并使用常规的If块,但我真的想使用三元表达式。如果Nothing真的是VB.NET等效于C#默认值的话,你如何解释这种行为?