以不同的方法使用数组

时间:2012-03-27 18:59:35

标签: c# arrays methods scope return

我是编程新手,但我已经学过python课程并且一直在学习C#。我确实意识到这个问题已得到解答,但我无法理解答案。

编辑:对不起,我会尝试更详细地解释我的问题。在新方法中,我想创建一个包含2D阵列CPU中所有值的3D数组。所以我希望将CPU传递给新方法,以便将其复制到新的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 个答案:

答案 0 :(得分:1)

问题很混乱,但如果要返回数组并在其他方法中使用它,请将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;
}

答案 1 :(得分:0)

  

如何将数组复制到新方法中,以便在那里使用?

你的意思是如何返回数组?

您必须写出正确的返回类型:

public string[,] pickRoles(string name)

要返回整个数组,必须在这种情况下返回指针:

return CPU;

答案 2 :(得分:0)

如果在类中声明了方法,并且您的数组是该类的成员,那么您的方法应该能够直接访问该成员。如果它们不在同一个类中,则可以将数组作为参数传递给方法。如果你的方法应该产生一个数组,那么你可以通过改变返回类型来返回它。

顺便说一句,我猜你正在尝试做的就是使用字符串名称关联的cpu_ x _role。那是对的吗?如果是这种情况,您可能希望查看Dictionary而不是2D数组。