C # / VB.Net проблема: VB.Net заполняет массив строк, но C # не - PullRequest
2 голосов
/ 04 февраля 2012

Я работаю с ссылочными библиотеками VB6. Проблема в том, что результаты вызова метода / функции не совпадают. Ниже приведены примеры кода:

Первый VB.Net

Dim Validations() As String
myErr = myEntry.ValidateLine(Validations)

Если проверка не пройдена, строковый массив Validations заполняется строкой описания ошибки. Я пытался сделать то же самое в C #:

private string[] valArray = null;
sdkError = sdkEntry.ValidateLine(valArray);

У кого-нибудь есть идея, почему я не могу получить C # для заполнения массива строк?

Кроме того, функция в VB вызывается с ref для System.Array ...

ValidateLine (ref System.Array ValErrors), возможно, это как-то связано с этим?

Ответы [ 2 ]

2 голосов
/ 04 февраля 2012

Я предполагаю, что VB неявно передает вашу переменную по ссылке.Вы можете попробовать сделать то же самое в C #:

sdkError = sdkEntry.ValidateLine(ref valArray);

(не сразу понятно, как вы вызываете VB DLL, учтите.)

0 голосов
/ 04 февраля 2012

Ваш VB создает и очищает массив, ваш C # создает пустой массив. Я предполагаю, что VB DLL нужно ненулевое значение.

Попробуйте поменять C # на это:

private string[] valArray = new string[]{};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...