C# 数组方法调试问题
我正在使用一种方法填充数组,但是我收到了同一问题的两个错误 尝试使用方法指定孔阵列时,以及在方法中返回填充的阵列时 我在有问题的行中添加了带有错误的明确注释C# 数组方法调试问题,c#,.net,C#,.net,我正在使用一种方法填充数组,但是我收到了同一问题的两个错误 尝试使用方法指定孔阵列时,以及在方法中返回填充的阵列时 我在有问题的行中添加了带有错误的明确注释 static void Main(string[] args) { uint n = uint.Parse(Console.ReadLine()); uint m = uint.Parse(Console.ReadLine()); int[,] array=new int [n,m]; array=FillArrayMethodC(n,m)
static void Main(string[] args)
{
uint n = uint.Parse(Console.ReadLine());
uint m = uint.Parse(Console.ReadLine());
int[,] array=new int [n,m];
array=FillArrayMethodC(n,m); //Cannot implicitly convert type 'int' to 'int[*,*]'
}
static int FillArrayMethodC(uint n, uint m)
{
int[,] a=new int [n,m];
//fill the array
return a; //Cannot implicitly convert type 'int[*,*]' to 'int'
}
返回整个数组并分配它的正确方法是什么
谢谢你的帮助
BR更改FillArrayMethod的返回类型
static int[,] FillArrayMethodC(uint n, uint m)
更改FillArrayMethod的返回类型
static int[,] FillArrayMethodC(uint n, uint m)
不清楚您是想在Main方法中还是在fill方法中创建新数组。看起来你可能真的想要这个:
static void Main(string[] args)
{
uint n = uint.Parse(Console.ReadLine());
uint m = uint.Parse(Console.ReadLine());
int[,] array=new int [n,m];
FillArrayMethodC(array, n, m); // pass array into "fill" method
}
static void FillArrayMethodC(int[,] a, uint n, uint m)
{
//fill the array
...
// nothing to return
}
这里的主要功能是创建数组并将其传递给fill方法。fill方法不会创建数组,因此不会返回任何内容。不清楚您是要在Main中还是在fill方法中创建新数组。看起来你可能真的想要这个:
static void Main(string[] args)
{
uint n = uint.Parse(Console.ReadLine());
uint m = uint.Parse(Console.ReadLine());
int[,] array=new int [n,m];
FillArrayMethodC(array, n, m); // pass array into "fill" method
}
static void FillArrayMethodC(int[,] a, uint n, uint m)
{
//fill the array
...
// nothing to return
}
这里的主要功能是创建数组并将其传递给fill方法。fill方法不会创建数组,因此它不会返回任何内容。无需在fillArrayMethod()方法中创建数组,因为您已经创建了它。如果该方法只是填充数组,并且需要知道数组维度,那么可以将数组传递到该方法中,并获取该方法内部的维度。我怀疑你想要这样的东西:
static void Main(string[] args)
{
uint n = uint.Parse(Console.ReadLine());
uint m = uint.Parse(Console.ReadLine());
int[,] array = new int[n, m];
FillArrayMethodC(array);
}
static void FillArrayMethodC(int[,] arr)
{
int numRows = arr.GetLength(0);
int numCols = arr.GetLength(1);
for (int i = 0; i < numRows; i++)
for (int j = 0; j < numCols; j++)
{
// Fill your array here, e.g.:
arr[i, j] = i * j;
}
return;
}
static void Main(字符串[]args)
{
uint n=uint.Parse(Console.ReadLine());
uint m=uint.Parse(Console.ReadLine());
int[,]数组=新的int[n,m];
FillArrayMethodDC(阵列);
}
静态无效填充阵列方法(int[,]arr)
{
int numRows=arr.GetLength(0);
int numCols=arr.GetLength(1);
对于(int i=0;i
无需在FillArrayMethod()方法中创建数组,因为您已经创建了它。如果该方法只是填充数组,并且需要知道数组维度,那么可以将数组传递到该方法中,并获取该方法内部的维度。我怀疑你想要这样的东西:
static void Main(string[] args)
{
uint n = uint.Parse(Console.ReadLine());
uint m = uint.Parse(Console.ReadLine());
int[,] array = new int[n, m];
FillArrayMethodC(array);
}
static void FillArrayMethodC(int[,] arr)
{
int numRows = arr.GetLength(0);
int numCols = arr.GetLength(1);
for (int i = 0; i < numRows; i++)
for (int j = 0; j < numCols; j++)
{
// Fill your array here, e.g.:
arr[i, j] = i * j;
}
return;
}
static void Main(字符串[]args)
{
uint n=uint.Parse(Console.ReadLine());
uint m=uint.Parse(Console.ReadLine());
int[,]数组=新的int[n,m];
FillArrayMethodDC(阵列);
}
静态无效填充阵列方法(int[,]arr)
{
int numRows=arr.GetLength(0);
int numCols=arr.GetLength(1);
对于(int i=0;i
为什么FillArrayMethodC
的返回类型不是int[,]
而不是int
?Kirk的评论完全正确。不管怎样,我不明白你们想做什么。只是用方法填充一个数组!为什么返回类型是FillArrayMethodDC
而不是int[,]
而不是int
?Kirk的评论完全正确。不管怎样,我不明白你们想做什么。只是用方法填充一个数组!请注意,使用此方法实际上创建了两次数组。您应该确保只执行一次。请注意,使用此方法实际上创建了两次数组。你应该确保你只做一次。