Использование массива в другом методе - PullRequest
0 голосов
/ 27 марта 2012

Я новичок в программировании, но я прошел курс обучения Python и самостоятельно изучал C #.Я понимаю, что на этот вопрос был дан ответ, но я не смог понять ответ.

РЕДАКТИРОВАТЬ: Извините, я попытаюсь объяснить мой вопрос более подробно.В новом методе я хочу создать трехмерный массив со всеми значениями из двумерного массива ЦП.Поэтому я хочу, чтобы ЦП был передан в новый метод, чтобы я мог скопировать его в новый 3D-массив и затем изменить его содержимое.

Итак, у меня есть метод ....

public string pickRoles(string name)

и у меня есть этот массив

string[,] CPU = new string[6, 2]
            {
                { (names[index]), (cpu_1_role) },
                { (names[index]), (cpu_2_role) },
                { (names[index]), (cpu_3_role) },
                { (names[index]), (cpu_4_role) },
                { (names[index]), (cpu_5_role) },
                { (names[index]), (cpu_6_role) },
            };
return CPU[6, 2];

Как мне скопировать массив в новый метод, чтобы я мог использовать его там?И когда я должен создать новый класс вместо множества методов?Пожалуйста, объясните ответы подробно для меня.Спасибо!

Ответы [ 3 ]

1 голос
/ 27 марта 2012

Вопрос сбивает с толку, но если вы хотите вернуть массив и использовать его в другом методе, измените тип возврата с pickRoles на string[,]:

public void Foo()
{
    string[,] CPU = pickRoles("Foo");
}

public string[,] pickRoles(string name)
{
    string[,] CPU = new string[6, 2]
    {
            { (names[index]), (cpu_1_role) },
            { (names[index]), (cpu_2_role) },
            { (names[index]), (cpu_3_role) },
            { (names[index]), (cpu_4_role) },
            { (names[index]), (cpu_5_role) },
            { (names[index]), (cpu_6_role) },
    };
    return CPU;
}
0 голосов
/ 27 марта 2012

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

Между прочим, я предполагаю, что то, что вы пытаетесь сделать, это хорошо cpu_ x _role, связанный с именем строки. Это верно? Если это так, вы можете посмотреть на словарь, а не 2D-массив.

0 голосов
/ 27 марта 2012

Как скопировать массив в новый метод, чтобы я мог использовать его там?

Вы имеете в виду, как вернуть массив?

Вы должны написать правильный тип возврата:

public string[,] pickRoles(string name)

И чтобы вернуть весь массив, вы должны вернуть указатель в этом случае:

return CPU;
...