Domanda

Il 'lettore' all'interno dell'istruzione if mostra " L'espressione non è un metodo " ;, cosa sto facendo di sbagliato?

Grazie

 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

Ho semplicemente spostato il Dim e ha funzionato.

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

Grazie

È stato utile?

Soluzione

Su questa linea:

reader(OpenFileDialog2.FileName)

Stai provando a chiamare un costruttore su un oggetto che è già stato costruito. Questo non è possibile, quindi il compilatore VB lo sta interpretando mentre provi a chiamare l'oggetto reader come se fosse una funzione.

Basta non dichiarare il lettore fino a quando non si dispone del nome file, in modo da poter passare il nome al costruttore quando lo si costruisce effettivamente, in questo modo

    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

Altri suggerimenti

Hai perso il nome del metodo in reader(OpenFileDialog2.FileName).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top