Pregunta

El 'lector' dentro de la instrucción if muestra " La expresión no es un método " ;, ¿qué estoy haciendo mal?

Gracias

 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

Simplemente moví el Dim y funcionó.

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

Gracias

¿Fue útil?

Solución

En esta línea:

reader(OpenFileDialog2.FileName)

Estás intentando llamar a un constructor en un objeto que ya está construido. Eso no es posible, por lo que el compilador de VB está interpretando esto mientras intenta llamar al objeto lector como si fuera una función.

Simplemente no declare al lector hasta que tenga el nombre de archivo, de modo que pueda pasar el nombre al constructor cuando realmente lo construya, así

    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

Otros consejos

Te perdiste el nombre del método en reader(OpenFileDialog2.FileName).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top