Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数组方法调试问题_C#_.net - Fatal编程技术网

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的评论完全正确。不管怎样,我不明白你们想做什么。只是用方法填充一个数组!请注意,使用此方法实际上创建了两次数组。您应该确保只执行一次。请注意,使用此方法实际上创建了两次数组。你应该确保你只做一次。