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).

于 2009-06-26T15:44:55.373 回答
0

在这条线上:

reader(OpenFileDialog2.FileName)

您正在尝试在已构造的对象上调用构造函数。这是不可能的,所以 VB 编译器会在您尝试调用 reader 对象时解释它,就好像它是一个函数一样。

只是在你有文件名之前不要声明阅读器,这样你就可以在实际构造它时将名称传递给构造函数,就像这样

    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 回答