无法在C#中向多维数组添加值

时间:2016-06-25 17:03:28

标签: c# multidimensional-array

我是C#的新手。我正在尝试制作一个矩阵计算器,但首先我需要用户给我这个矩阵的大小和内容。我有2节课。

第一堂课如下:

class Assignment1
{
    static void Main(string[] args)
    {
        Console.Write("Please enter the number of rows in the matrix: ");
        int row = int.Parse(Console.ReadLine());

        Console.Write("Please enter the number of columns in the matrix: ");
        int columns = int.Parse(Console.ReadLine());

        MatrixN matrix =new MatrixN(row, columns);

        int i = 0;
        for (double x = 0; x < row; x++)
        {
            for(double y = 0; y < columns; y++)
            {

                if(i == 0)
                {
                    Console.Write("Enter first value of the matrix: ");
                    matrix[x, y] = double.Parse(Console.ReadLine());
                    i++;
                }
                else if (i == row * columns)
                {
                    Console.Write("Enter last value of the matrix: ");
                    matrix[x, y] = double.Parse(Console.ReadLine());
                    i++;
                }
                Console.Write("Enter nest value of the matrix: ");
                matrix[x, y] = double.Parse(Console.ReadLine());
                i++;
            }
        }
    }
}

第二课是:

 class MatrixN
{

    double[,] m;

    public MatrixN(int row, int column)
    {
        m = new double[row, column];
    }

我一直收到错误:无法将带有[]的索引应用于代码

的MatrixN 表达式
matrix[x, y] = double.Parse(Console.ReadLine());

非常感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:1)

matrixMatrixN类型的变量。类型MatrixN不支持订阅/索引操作,因此您无法访问值matrix[i, j],也无法设置值matrix[i, j] = v;

您可以公开m类的MatrixN成员变量(通过公开),设置/访问matrix.m的值,或编写自己的索引运算符:

class MatrixN {
   private double[,] inner;
   public double this[int x, int y] {
       get { return inner[x, y]; }
       set { inner[x, y] = value; }
   }
}