Как создать ссылку на System.Array, содержащий строки в C#

У меня есть интересный вопрос относительно кода C#. В основном я должен вызвать метод

BCI2000AutomationLib.IBCI2000Remote.StartupModules(ref System.Array)

Используя Visual Studio 2010, следующий код компилируется и работает отлично:

// Startup modules
string[] modules = new string[3];
modules[0] = "SignalGenerator --local";
modules[1] = "DummySignalProcessing --local";
modules[2] = "DummyApplication --local";
ok_conn = bci.StartupModules(ref modules);

Теперь для переноса этого на игровой движок (например, Unity 3D) требуется более строгий код на C#, поскольку он использует компилятор Mono C#. Так что для того же кода я получаю следующую ошибку компиляции:

Наилучшее совпадение перегруженного метода для BCI2000AutomationLib.IBCI2000Remote.StartupModules(ref System.Array) содержит недопустимые аргументы. Аргумент 1: невозможно преобразовать из 'ref string[]' в 'ref System.Array'

Не могли бы вы дать совет, как переписать этот блок кода в более строгую кодировку, чтобы устранить указанную ошибку?

2 ответа

Решение

Измените тип вашей переменной на System.Array

// Startup modules 
Array modules = new string[3] 
{
    "SignalGenerator --local",
    "DummySignalProcessing --local",
    "DummyApplication --local"
};
ok_conn = bci.StartupModules(ref modules); 

Ваш метод StartupModules принимает в качестве аргумента ref Array; он может установить переменную для любого другого массива. Не обязательно строковый массив, это может быть int[]. Вот почему вы не можете вызвать переменную с типом Array of string.

Программа String Array, получающая строку от пользователя:

class Program
{
    static void Main(string[] args)
    {
        int i,j;
        string[] str = new string[10];
        Console.WriteLine("Enter the Name of your friends");
        for (i = 0; i < 10; i++)
        {
            str[i] = Convert.ToString(Console.ReadLine());
            Console.WriteLine("Array["+i+"]="+str[i]);
        }
        Console.ReadLine();
    }
}
Другие вопросы по тегам