Microsoft何时开始强制使用“新”语句初始化数据集?我的公司有一个多年前开始的网站,很多数据集都是用
这样的声明来宣布的Dim someDataset as Dataset = Nothing
这段代码已经工作了很长时间但我们最近开始收到错误,声明Value不能为null。参数名称:dataset。
我已尽力更新这些旧代码,但我不知道我们正在使用的库有任何更新,我正在尝试确定触发此错误的内容。谢谢
我想强调的是,在错误开始发生之前没有对代码进行任何更改,因为这听起来不太可能。它是一个大型应用程序,数据集以各种方式在整个应用程序中使用。它已经投入生产多年,并且在最近发生此错误之前按预期工作。
答案 0 :(得分:1)
自.NET第1天起,这一点没有改变。必须在某处使用New
语句创建所有引用类型,否则它们将保持为空引用(Nothing
)。
听起来用于创建数据集的应用程序的其他部分已被删除或更改,以便有时返回Nothing
。
答案 1 :(得分:0)
声明和实例化之间存在差异。
此行声明DataSet
:
Dim myDataSet As DataSet
注意:由于您只声明了一个DataSet
对象,因此它未设置为实例,因此它是Nothing
。
此行实例化DataSet
:
myDataSet = New DataSet()
通常你会看到这些行放在一起,如下所示:
Dim myDataSet = New DataSet()
如果您只声明DataSet
,那么在使用之前一定要检查它是否为Nothing
,如下所示:
If myDataSet Is Not Nothing Then
' Use myDataSet because there is an instance of it
End If
注意:您应该始终检查Function
的返回类型是否为Nothing
。