Перейти к содержимому

e2k

e2k

Регистрация: 20.09.2013, 16:38
Offline Активность: 23.09.2013, 19:05
-----

В теме: MapBasic и все что с ним связано

20.09.2013, 16:56:47

Давно в этой же теме вот в этом сообщении был дан ответ на то, как передать массив строк во внешнюю dll, написанную на C#, с возможностью изменений значений. Хочу вернуться к этому же вопросу: делаю так (см. код, вариант 1), а массив не меняется. Размер массива я определяю ранее и делаю перед вызовом метода из dll ReDim. Если же в цикле (вар. 2) менять - то значения меняются (проверяю результат в MapBasic'е). Почему 1-й вариант не срабатывает?

public static int GetTabFiles(string path, bool b, string[] sArrVal)
{
    // Вариант 1
    sArrVal = Directory.GetFiles(path, "*.TAB", b ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly);


    // Вариант 2
    string[] sArr = Directory.GetFiles(path, "*.TAB", b ? SearchOption.AllDirectories : SearchOption.TopDirectoryOnly);
    for (int i = 0; i < sArrVal.Count(); i++)
    {
         sArrVal[i] = sArr[i];
    }                       
    return sArrVal.Count();
}

Размещение рекламы на сайте     Предложения о сотрудничестве     Служба поддержки пользователей

© 2011-2022 vse.kz. При любом использовании материалов Форума ссылка на vse.kz обязательна.