前提・実現したいこと
VB.NETで下記の最後にある「箱は 配列型 List<int>[ ] → 中に入っている小箱は int 型の List」を実装したいと思っております。
http://koshinran.hateblo.jp/entry/2017/06/22/202924
C#であれば問題ないのですが、案件がVB.NET縛りです。
発生している問題・エラーメッセージ
エラーメッセージ
該当のソースコード
VB.NET
1Public Class clsNOandID_Ctrl 2 ' ## NoとIDの対応表定義(リスト配列) ## 3 Private lstNoId As List(Of Integer)() 4 5 'コンストラクタ 6 Public Sub New() 7 lstNoId(0) = New List(Of Integer)() 8 lstNoId(1) = New List(Of Integer)() 9 End Sub 10 11 ' ## 添字と値を受け取りリスト配列にAddする ## 12 Public Sub setListNoId(ByVal idx As Integer, ByVal val As Integer) 13 lstNoId(idx).Add(val) 14 End Sub 15 16 Public Function getListNoId() 17 Return lstNoId 18 End Function 19 20 21End Class
試したこと
上記コードのクラスをインスタンス化(Dim c As New clsNOandID_Ctrl)すると、System.NullReferenceExceptionが発生いたします。
こちらはソースコード3行目がlstNoIdの宣言がインスタンス化されていないものだと認識いたしましたので、下記コードに変更いたしました。
VB.NET
1Public Class clsNOandID_Ctrl 2 ' ## NoとIDの対応表定義(リスト配列) ## 3 Private lstNoId As List(Of Integer)() 4 5 'コンストラクタ 6 Public Sub New() 7 lstNoId = New List(Of Integer)() ' !!!!!!!!! この行を追加 !!!!!!! 8 lstNoId(0) = New List(Of Integer)() 9 lstNoId(1) = New List(Of Integer)() 10 End Sub 11 12 ' ## 添字と値を受け取りリスト配列にAddする ## 13 Public Sub setListNoId(ByVal idx As Integer, ByVal val As Integer) 14 lstNoId(idx).Add(val) 15 End Sub 16 17 Public Function getListNoId() 18 Return lstNoId 19 End Function 20 21 22End Class
すると、エラー BC30311 型 'List(Of Integer)' の値を 'List(Of Integer)()' に変換できません。
おそらくNew List(Of Integer)()が配列化されていない、というエラーかと思うのですが、何方か良い解決案をご存知でしたらご教授頂きたく存じます。
よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/30 05:39