У меня есть COM-объект, написанный на Visual Fox Pro 9.0. Он имеет следующую процедуру:
PROCEDURE GetArray(m.vcArrayName as String) as array
RETURN @&vcArrayName
На COM-объект ссылаются в проекте VS2010 с использованием C #. Подпись процедуры в C #:
object GetArray(string vcArrayName);
При отладке я вижу, что возвращаемое значение - {объект [1..1]}, а тип - объект {объект []}. Развернув переменную, я вижу, что это массив базы 1 с одним элементом, который является пустой строкой ("");
Однако я не могу привести это значение к объекту []. Я всегда получаю InvalidCastException с норвежским сообщением о том, что я не могу привести Object [*] к Object [].
Странно то, что если COM-объект возвращает двумерный массив, у меня нет проблем с приведением его к объекту [,]. Мне очень странно, что с двумя измерениями легче иметь дело, чем с одним!
Вопрос, на который я хотел бы получить ответ:
Что это за объект [*] бизнес? Кто-нибудь может мне сказать, является ли это плохим переводом в норвежском сообщении об исключении или Object [*] является неким неясным синтаксисом C #, о котором я не слышал?