VB.NET Почему моя функция не возвращает массив? - PullRequest
0 голосов
/ 02 июня 2010

Я пытаюсь написать функцию, которая возвращает массив, который я могу передать в 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, поэтому любая помощь будет признательна!

Ответы [ 3 ]

4 голосов
/ 02 июня 2010

Измените объявление функции следующим образом:

Public Function ToArray() As Object()

Используемая вами перегрузка ToString() ожидает массив объектов, а не экземпляр класса Array.

2 голосов
/ 02 июня 2010

Ваша функция должна выглядеть так:

Public Function ToArray() As Object()
    Return New Object() {Me("district"), Me("county"), Me("route"), ... ,Me("document") }
End Function
0 голосов
/ 02 июня 2010

Попробуйте сделать определение:

Открытые переопределения Функция toString () As String ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...