0

カスタムクラスは初めてです。これが私のクラス定義です:

Public Class game
    Private strName As String()

    Property name As String()
        Get
            Return strName
        End Get
        Set(ByVal Value As String())
            strName = Value
        End Set
    End Property
End Class

そして、これがファイルから読み取って「ゲーム」のインスタンスを作成するための私のコードです

Public Sub loadGames()
    Dim game As New game

    Dim dir As New IO.DirectoryInfo(gameFolder)
    Dim fs As IO.FileInfo() = dir.GetFiles("*.gemui")
    Dim f As IO.FileInfo
    For Each f In fs
        Dim path As String = f.FullName
        Dim fi As New FileInfo(path)
        Dim sr As StreamReader = fi.OpenText()
        Dim s As String = ""
        While sr.EndOfStream = False
            game.name = sr.ReadLine() '"Value of type 'String' cannot be converted to '1-dimensional array of String'."
            MsgBox(sr.ReadLine()) 'shows a message box with exactly what I expect to see
        End While
        sr.Close()

    Next
End Sub

game.name = sr.ReadLine()が問題です。 「タイプ「文字列」の値を「文字列の1次元配列」に変換できません。」

4

1 に答える 1

1

問題は、クラス定義で文字列を宣言しておらず、文字列の配列を宣言していることです。修正されたコードは次のとおりです。

Public Class game
    Private strName As String

    Property name As String
        Get
            Return strName
        End Get
        Set(ByVal Value As String)
            strName = Value
        End Set
    End Property
End Class

またはもっと単純に.net4.0以降

Public Class game
    Property name As String
End Class

この場合、プライベート変数は_nameと呼ばれます

于 2012-11-30T02:45:09.963 に答える