Visual Basic, открываю файл, что не так с моим кодом?

StackOverflow https://stackoverflow.com/questions/1049828

  •  20-08-2019
  •  | 
  •  

Вопрос

«Читатель» в операторе 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

Спасибо

Это было полезно?

Решение

В этой строке:

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

Другие советы

Вы пропустили имя метода в reader(OpenFileDialog2.FileName).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top