1
If My.Settings.Sup1 Is Nothing Then
        My.Settings.Sup1 = New Collections.ArrayList
        My.Settings.Sup1.Add(0)' array index can't be negative or less than 0
        My.Settings.Sup1.Add(0)
        My.Settings.Sup1.Add(0)
        My.Settings.Sup1.Add(0)
    End If

コメント行でこの例外が発生するのはなぜですか?上記のコードに何か問題がありますか?

現在のインデックスに値を挿入して割り当てようとしましたが、それでも例外が発生します

4

2 に答える 2

1

タイプの [プロジェクト プロパティ] → [設定] タブにユーザー設定を追加したSystem.Collections.ArrayListところ、期待どおりに動作しました。あなたの問題があなたのコードがうまく見えるかどうかわからないので、私はあなたTypeを再確認し、それが正しいことを確認します.

ここに画像の説明を入力


ここに画像の説明を入力

于 2012-08-21T02:49:08.223 に答える
0

これを WPF プロジェクトで実行しました。アプリ設定の下で配列リストを取得する方法を理解できなかったので、System.Collection.Specialized.StringCollection を使用しました。[マウスの右ボタン] 「マイ プロジェクト」、[設定] に移動し、そこに Sup1 を System.Collection.Specialized.StringCollection として追加します。値を空白のままにします。

デバッガーでは、以下のすべての行を正常に反復し、例外はありません。

    Public Sub New()
    'assuming sup1 is supposed to be an System.Collection.Specialized.StringCollection as set in Project Properties
            If My.Settings.Sup1 Is Nothing Then
                ' -- replaced w string collection -- My.Settings.Sup1 = New Collections.ArrayList
                My.Settings.Sup1 = New System.Collections.Specialized.StringCollection
                My.Settings.Sup1.Add(0) ' array index can't be negative or less than 0
                My.Settings.Sup1.Add(0)
                My.Settings.Sup1.Add(0)
                My.Settings.Sup1.Add(0)
            End If
    End Sub
于 2012-08-21T02:16:37.070 に答える