Матрица в классе не инициализируеться с помощью конструктора в main, C#

Поле класса numbers - двумерний массив. В классе создал конструктор, который инициализирует этот массив случайными значениями (Array(int columns, int rows)). После того как вызвал конструктор в Main (Program.cs) массив не инициализировался, хотя при пошаговой отладке видно что он инициализировался.

Array.cs

public class Array
{
    int[,] numbers;
    int columns, rows;
    int result = 0;
    public Array()
    {

    }
    public Array(int columns, int rows)
    {
        this.columns = columns;
        this.rows = rows;
        int[,] numbers = new int[this.rows, this.columns];
        Random range = new Random();
        for (int i = 0; i < this.rows; i++)
        {
            for (int j = 0; j < this.columns; j++)
            {
                numbers[i, j] = range.Next(1, 100);
                Console.Write(numbers[i, j] + "\t");
            }
            Console.WriteLine("\n");
        }

    }

Program.cs:

Array array = new Array(3, 3);

После выполнения етого кода в окне локальние показываеться что в массиве все значения нули, хотя в консоли выводятся норм значения:


Ответы (1 шт):

Автор решения: iKuzmychov
int[,] numbers = ...

В вышеуказанной строке вы создаёте новую переменную numbers и присваеваете ей значение, вместо того чтобы присвоить значение существующему полю. Уберите int[,]. В результате код будет выглядить так:

...
this.rows = rows;
numbers = new int[this.rows, this.columns]; // <------
Random range = new Random();
...
→ Ссылка