以不同的方法使用数组
我是编程新手,但是我学习了一门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];
如何将阵列复制到一个新的方法,这样我就可以有使用它?何时应该创建一个新的类而不是一堆方法?请详细解释我的答案。谢谢!
的问题是混乱的,但如果你想返回数组和其他方法使用它,改变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;
}
它看起来像你声明CPU主? 这是更好的格式吗?我有一堆使用相同方法声明的变量,我必须做一堆评论才能找到任何东西。 但是如果我改变了“return CPU [6,2];”到“返回CPU”; 我得到一个错误“不能隐式转换类型”字符串[*,*]'为'字符串'“ – Thumbtack 2012-03-27 19:38:10
这是因为您需要将方法的返回类型更改为'string [,]'而不是'string' 。至于声明,为了示例的目的,我在'pickRoles'方法的本地声明了数组,并将数组返回给调用方法('Foo')。 – 2012-03-27 19:44:49
新的方法,所以我可以在那里使用它?
你的意思是如何返回数组?
您必须编写正确的返回类型:
public string[,] pickRoles(string name)
,并返回整个数组,你必须返回指针在这种情况下:
return CPU;
啊,这好像是我在找的东西。但是我不明白关于指针的任何事情,只是它们引用了变量的内存位置,而不是变量本身? – Thumbtack 2012-03-27 19:27:40
是的,它引用了数组的内存位置。你可以做'string [,] newArray = pickRoles(“Example”);'和'newArray'引用'CPU'。所以你不会传递数组中的每个值,但是它们都指向相同的内存位置,并且它们会采用相同的数据。 – 2012-03-27 19:41:19
如果你的方法是在类中声明和你的数组是该类的成员,那么你的方法应该能够直接访问该成员。如果它们不在同一个类中,那么可以将该数组作为参数传递给您的方法。如果你的方法应该产生一个数组,那么你可以通过改变返回类型来返回它。
顺便说一句,我猜你正在尝试做的事情是罚款cpu_ x _role与字符串名称关联。那是对的吗?如果是这样的话,你可能想看看Dictionary而不是2D数组。
实际上,在原始方法中,程序有一个名称列表,并将其存储到CPU [x,0]中。然后它通过switch case确定cpu_x_role并将其存储到CPU [x,1]中。现在我试图找出一种方法来存储一堆对话[通过对话,我的意思是console.writeline();],每个角色可以根据其角色执行。 – Thumbtack 2012-03-27 19:20:10
你不需要用'C#'作为你的问题的前缀,这就是标签的用途。 – payo 2012-03-27 19:02:27
你发现了什么答案,你可以链接它吗? – payo 2012-03-27 19:02:59
您可以将数组传递给消息,但“复制”到数组中并不清楚。你究竟想要完成什么?顺便提一下,'CPU [6,2]'将会出界,因为这些索引是基于零的。 'CPU [5,1]'是最后一个元素。 – recursive 2012-03-27 19:03:19