【发布时间】:2012-01-31 00:51:02
【问题描述】:
谁能告诉我为什么这会在运行时出错:
Dim mightBeNothing As List(Of String) = Nothing
Dim a As List(Of String) = IIf(mightBeNothing Is Nothing, New List(Of String)(), New List(Of String)(mightBeNothing))
我在第二行收到ArgumentNullException。如果我将最后一部分替换为:
Dim a As List(Of String) = IIf(mightBeNothing Is Nothing, New List(Of String)(), New List(Of String)())
它可以工作 - 但是如果 mightBeNothing 什么都没有,构造函数 New List(Of String)(mightBeNothing) 将永远不会被调用,那么问题是什么?
【问题讨论】:
标签: vb.net initialization short-circuiting argumentnullexception