0

if ステートメント内の「リーダー」が「式はメソッドではありません」と表示していますが、何が間違っていますか?

ありがとう

 Dim reader As New CSVReader

        OpenFileDialog2.Filter = "CSV File (*.csv)|*.csv"
        OpenFileDialog2.RestoreDirectory = True
        If OpenFileDialog2.ShowDialog() = DialogResult.OK Then

            reader(OpenFileDialog2.FileName)
            reader.DisplayResults(DataGridView1)
            'Return OpenFileDialog2.FileName
        Else
        End If

Dimを移動しただけでうまくいきました。

OpenFileDialog2.InitialDirectory = "a:"
OpenFileDialog2.Filter = "CSV File (*.csv)|*.csv"
OpenFileDialog2.RestoreDirectory = True
If OpenFileDialog2.ShowDialog() = DialogResult.OK Then
    Dim reader As New CSVReader(OpenFileDialog2.FileName)
    reader.DisplayResults(DataGridView1)
    'Return OpenFileDialog2.FileName
Else
End If

ありがとう

4

2 に答える 2

0

この行で:

reader(OpenFileDialog2.FileName)

既に構築されているオブジェクトでコンストラクターを呼び出そうとしています。それは不可能なので、VB コンパイラはこれを、リーダー オブジェクトを関数であるかのように呼び出そうとしていると解釈しています。

ファイル名を取得するまでリーダーを宣言しないでください。これにより、実際に作成するときにコンストラクターに名前を渡すことができます。

    OpenFileDialog2.Filter = "CSV File (*.csv)|*.csv"
    OpenFileDialog2.RestoreDirectory = True
    If OpenFileDialog2.ShowDialog() = DialogResult.OK Then

        Dim reader As New CSVReader(OpenFileDialog2.FileName)
        reader.DisplayResults(DataGridView1)
        'Return OpenFileDialog2.FileName
    Else
    End If
于 2009-06-26T15:46:35.323 に答える
0

のメソッド名が抜けていreader(OpenFileDialog2.FileName)ます。

于 2009-06-26T15:44:55.373 に答える