2010-06-01 3 views
0

Я пытаюсь написать функцию, которая возвращает массив, я могу передать в String.Format:VB.NET Почему моя функция не возвращает массив?

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

Изменить объявление функции для этого:

Public Function ToArray() As Object() 

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

+0

Ах! Отлично! Благодаря! –

2

Ваша функция должна выглядеть следующим образом:

Public Function ToArray() As Object() 
    Return New Object() {Me("district"), Me("county"), Me("route"), ... ,Me("document") } 
End Function 
0

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

Public Overrides Функция ToString() As String()

Смежные вопросы