Frage

Die ‚Leser‘ im if-Anweisung zeigt „Expression ist keine Methode“, was mache ich falsch?

Danke

 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

Ich zog einfach die Dim und es hat funktioniert.

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

Danke

War es hilfreich?

Lösung

Auf dieser Zeile:

reader(OpenFileDialog2.FileName)

Sie versuchen, einen Konstruktor für ein Objekt aufrufen, die bereits aufgebaut ist. Das ist nicht möglich, so dass der VB-Compiler interpretiert dies als Sie versuchen, den Leser Objekt aufrufen, als ob es sich um eine Funktion waren.

Nur nicht erklärt die Leser nicht, bis Sie die Dateinamen haben, so dass Sie den Namen an den Konstruktor übergeben kann, wenn Sie es tatsächlich konstruieren, wie so

    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

Andere Tipps

Sie verpassten die Methodennamen in reader(OpenFileDialog2.FileName).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top