Опция Strict On запрещает позднее связывание в vb.net - PullRequest
0 голосов
/ 07 января 2019

Я использую интерфейс COM для 3-й программы обработки деталей для получения информации о моих функциях (VS2017 и Framework 4.7.2).

Я получаю сообщение об ошибке от Visual Studio: "Option Strict On запрещает позднее связывание" для функции ниже

'x, y, z, al, be, ga. as an array 
Protected Friend Shared Function GetComputedBRFPos(ByVal bodyElement As IScrBody, ByVal index As Integer) As Array
    Return bodyElement.getComputedBRFPos(p_index:=index)
End Function

Имеется документация по инструменту 3-й части. Я также пишу описание.

VARIANTList getComputedBRFPos ()
Получить текущую позицию BRF, создает неявный решатель, если решатель не существует. Элементы массива: x, y, z, al, be, ga.

Например, я помещаю другую функцию, которую использую, и не получаю ошибки позднего связывания для функции ниже.

Protected Friend Shared Function Get_sb_node_pos(ByVal bodyElement As IScrBody, ByVal childIndex As Integer) As Array
    Return bodyElement.get_sb_node_pos(p_childIndex:=childIndex)
End Function

И это описание в документации.

VARIANTList get_sb_node_pos (int childIndex)
Получить все элементы sb_node_pos в виде массива.

Я думаю, что это вызывает bodyElement.getComputedBRFPos(p_index:=index) значение «индекса», но я не знаю, в чем именно проблема и как ее достичь.

1 Ответ

0 голосов
/ 07 января 2019

Судя по опубликованной вами документации, bodyElement.getComputedBRFPos не принимает никаких параметров. В VB.NET, () являются необязательными для метода без параметров. Таким образом, ваш код в конечном итоге выглядит следующим образом.

Return bodyElement.getComputedBRFPos()(p_index:=index)

Который не возвращает массив, а возвращает элемент массива, имеющий тип объекта.

Вам следует удалить параметр, изменить тип возвращаемого значения или показать нам документацию метода с параметром, который вы пытаетесь вызвать.

Return bodyElement.getComputedBRFPos()
...