0

Microsoft が "New" ステートメントでデータセットを強制的に初期化するようになったのはいつですか? 私の会社には何年も前に開始されたウェブサイトがあり、多くのデータセットは次のようなステートメントで宣言されていました

Dim someDataset as Dataset = Nothing

このコードは長い間機能していましたが、最近、値を null にできないというエラーが発生し始めました。パラメーター名: データセット。

この古いコードを更新するために最善を尽くしましたが、使用しているライブラリの更新を認識しておらず、そもそもこのエラーの原因を特定しようとしています. ありがとうございました

エラーが発生する前にコードに変更が加えられていないことを強調したいと思います。これは大規模なアプリであり、データセットはアプリ全体でさまざまな方法で使用されています。このエラーが最近発生し始める前は、長年にわたって運用されており、期待どおりに機能していました。

4

2 に答える 2

1

それは .NET の初日から変わっていません。すべての参照型は、Newどこかにステートメントを使用して作成する必要があります。そうしないと、null 参照 ( Nothing) のままになります。

データセットの作成に使用されたアプリの他の部分が削除または変更され、Nothing.

于 2013-08-26T18:00:58.623 に答える
0

宣言とインスタンス化には違いがあります。

この行は次を宣言しDataSetます。

Dim myDataSet As DataSet

注:DataSetオブジェクトを宣言しただけなので、インスタンスに設定されていないため、Nothing.

この行はインスタンス化しますDataSet:

myDataSet = New DataSet()

多くの場合、次のように行がまとめられています。

Dim myDataSet = New DataSet()

a のみを宣言する場合は、次のように、使用する前にaDataSetかどうかを確認する必要があります。Nothing

If myDataSet Is Not Nothing Then
    ' Use myDataSet because there is an instance of it
End If

注: a の戻り値の型が is であるかどうかを常に確認する必要がFunctionありNothingます。

于 2013-08-26T18:22:54.453 に答える