2012-05-15 4 views
-1

У меня есть JavaScript, который возвращает массивКак преобразовать объект в массив в vb.net

var docArray = new Array(page, stamprect[0], stamprect[3], stamprect[2], stamprect[1],  srot); 
return docArray; 

, и я пытаюсь получить VB.Net, чтобы прочитать его в массив

Dim stampInfo() As Integer 
stampInfo = javaScriptObj.getAllGhostStamps(CInt(pages.Item(i)) - 1) 

im получение ошибки:

Unable to cast object of type 'System.Object[]' to type 'System.Int32[]'. 

Я не знаю, как привести его к массиву. любая помощь будет оценена по достоинству. Спасибо

ответ

1

Вам нужно выделить каждый элемент массива в целое число. Например:

Dim raw() As Object = javaScriptObj.getAllGhostStamps(CInt(pages.Item(i)) - 1) 
Dim stampInfo(raw.Length) As Integer 
For i As Integer = 0 to raw.Length - 1 
    stampInfo(i) = CType(raw(i), Integer) 
Next 
+0

Использование DirectCast вместо CType http://msdn.microsoft.com/en-us/library/7k6y2h6x.aspx – Yatrix

+0

@Yatrix Проблема с DirectCast, как я понимаю, в том, что он пропускает используя любые пользовательские перегрузки оператора. Поскольку перегрузки операторов могут быть очень полезными, и я иногда их использую, я предпочитаю использовать CType. Я считаю, что CType является эквивалентом типичной операции литья в C# (например, 'int x = (int) y;'). –