2

任意のタイプの文字列をこれに帰するたびに、オブジェクトのインスタンスに設定されていないオブジェクト参照を取得します。私は文字列を処理し、それを再び文字列に変換し、すべてのファズを処理するための可能な方法のすべての組み合わせを試しました。それは非常に苛立たしいことであり、構造/クラスの使用法と文字列配列などの基本原則のようなものだと思います(これも非常に馬鹿げています)

Private Class movie
    Public name As String
    Public actors As String
    Public year As Integer
    Public country As String
    Public votes As Integer

End Class

Private movies() As movie

If File.Exists(OpenFileDialog1.FileName) Then

        lblPath.Text = OpenFileDialog1.FileName
        Dim iFile As New StreamReader(lblPath.Text)

        While Not iFile.EndOfStream

            current = iFile.ReadLine

            movies(i).name = "sasasasa"

            lbMovies.Items.Add(movies(i).name)
            i = i + 1

        End While
    End If

これらは私がそれを使用するコード部分です

4

1 に答える 1

3

movie前に指摘したように、オブジェクトの空の配列を作成しています。したがってmovies(i)、ですNothing。メンバー()にアクセスしようとするとmovies(i).name、適切な例外が生成されます。コードは代入演算子にも到達しませんが、=それ以前は失敗することに注意してください。言い換えれば、これは文字列とはまったく関係がありません。movies(i).votes = 42代わりに書き込むと、同じエラーが発生します。コードを修正するには、最初にmovieオブジェクトを作成し、データを入力して配列に追加する必要があります。

于 2012-12-09T12:38:59.710 に答える