【发布时间】:2013-07-27 10:23:32
【问题描述】:
我有一个二维数组,我用数字随机填充。我为此编写的代码可以正常工作,但是,为了更好地组织我的代码,我想将“用数字随机填充”部分放入一个方法中。
数组是从 Main() 方法创建的,因为我计划将数组传递给/从其他操作它的方法返回。然后我尝试编写填充数组的方法,但我不确定如何传递多维数组或返回一个。根据 MSDN,我需要使用“out”而不是 return。
这是我迄今为止尝试过的:
static void Main(string[] args)
{
int rows = 30;
int columns = 80;
int[,] ProcArea = new int[rows, columns];
RandomFill(ProcArea[], rows, columns);
}
public static void RandomFill(out int[,] array, int rows, int columns)
{
array = new int[rows, columns];
Random rand = new Random();
//Fill randomly
for (int r = 0; r < rows; r++)
{
for (int c = 0; c < columns; c++)
{
if (rand.NextDouble() < 0.55)
{
array[r, c] = 1;
}
else
{
array[r, c] = 0;
}
}
}
这些是我遇到的错误:
"The best overloaded method match for 'ProcGen.Program.RandomFill(out int[*,*], int, int)' has some invalid arguments"
"Argument 1: cannot convert from 'int' to 'out int[*,*]'"
我做错了什么,我可以做些什么来修复这些错误?另外,我的想法是否正确,因为我正在使用“out”,我需要做的就是:
RandomFill(ProcArea[], rows, columns);
而不是?:
ProcArea = RandomFill(ProcArea[], rows, columns);
有没有调用方法的正确方法?
【问题讨论】:
标签: c# multidimensional-array parameter-passing return-value