0

我正在尝试编写一个函数,该函数返回一个可以传递给 String.Format 的数组:

Public Function ToArray() As Array
    Dim vals As New ArrayList()
    vals.Add(Me("district"))
    vals.Add(Me("county"))
    vals.Add(Me("route"))
    vals.Add(Me("section"))
    vals.Add(Me("beg_logmile"))
    vals.Add(Me("end_logmile"))
    vals.Add(Me("date_logged"))
    vals.Add(Me("year_installed").year())
    vals.Add(Me("document"))
    Return vals.ToArray()
End Function

Public Overrides Function toString() As String
    Return String.Format("{0} {1} {2} {3} {4:f3} {5:f3} {6} {7} {8}", Me.ToArray())
End Function

以上不起作用。我已经将它转换为 String.Format("{0}", Me.ToArray()) 它告诉我我有一个 System.Object[]

我还没有在 Google 或 SO 上找到答案,所以任何帮助都将不胜感激!

4

3 回答 3

4

将您的函数声明更改为:

Public Function ToArray() As Object()

您正在使用的ToString()重载需要一个对象数组,而不是Array类的实例。

于 2010-06-01T20:28:17.443 回答
2

您的函数应如下所示:

Public Function ToArray() As Object()
    Return New Object() {Me("district"), Me("county"), Me("route"), ... ,Me("document") }
End Function
于 2010-06-01T20:28:24.043 回答
0

试着做出你的定义:

公共覆盖函数 toString() 为 String()

于 2010-06-01T20:29:14.263 回答