非常に一般的なエラーであるため、対処方法をすぐに学ぶことができます。基本的には、存在しないものを使おうとしているということです。
次に例を示します。
Dim lstNumbers As List(Of Integer)
lstNumbers.Add(1)
lstNumbers.Add(2)
lstNumbers.Add(3)
このコードを実行すると、null 参照例外が発生し、「オブジェクト参照がオブジェクトのインスタンスに設定されていません」というメッセージが表示されます。エラー。これが意味することは、'lstNumbers' というオブジェクトを作成し、それが整数のリストになることをコンパイラに伝えましたが、実際にはリストを作成していないということです。本質的に、プレースホルダーを作成しましたが、何かを保持するオブジェクトはありません。
これを修正するには、オブジェクト自体を作成する必要があります。したがって、上記の例の場合、次のように変更します。
Dim lstNumbers As New List(Of Integer)
lstNumbers.Add(1)
lstNumbers.Add(2)
lstNumbers.Add(3)
キーワードは、New
新しいリスト オブジェクトを作成し、そのスペースに割り当てるように指示します。これで、エラーなしで追加できます。一部のオブジェクトは、文字列、整数など、自身を初期化します。
したがって、これらのタイプのエラーをトラブルシューティングするための最善のアドバイスは、オブジェクトがそれ自体のインスタンスに設定されていない理由を特定することです。New 関数を使用したか、次のような既存のオブジェクトに設定したことを確認してください。
Dim lstNumbers As New List(Of Integer)
lstNumbers.Add(1)
lstNumbers.Add(2)
lstNumbers.Add(3)
Dim lstNumbers2 As List(Of Integer)
lstNumbers2 = lstNumbers
lstNumbers を割り当てているため、lstNumbers2 で New を使用する必要はありません。ただし、次のことを試してみると、lstNumbers が初期化されていないため機能しません。
Dim lstNumbers As List(Of Integer)
Dim lstNumbers2 As List(Of Integer)
lstNumbers2 = lstNumbers