我有一個二維數組,我用數字隨機填充。我爲此工作的代碼工作正常,但是,更好地組織我的代碼我想將「用數字隨機填充」部分放入方法中。C#傳遞並返回一個多維數組
該數組是從Main()方法創建的,因爲我計劃將數組傳遞給其他方法並將其從其他方法中返回。然後我嘗試編寫填充數組的方法,但我不確定如何傳遞多維數組,或者返回一個。根據MSDN我需要使用「出」而不是回報。
這是我到目前爲止已經試過:
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[*,*]'"
我在做什麼錯了,我能做些什麼來修復這些錯誤?另外,我是正確的思維,因爲我使用的是「走出去」,所有我需要做的是:
RandomFill(ProcArea[], rows, columns);
代替?:
ProcArea = RandomFill(ProcArea[], rows, columns);
是否有調用有道方法?