2016-06-25 6 views
0

私はC#を初めて使用しています。私は行列計算機を作ろうとしていますが、最初に上記の行列のサイズと内容をユーザに教えてもらう必要があります。私は2つのクラスを持っています。C#の多次元配列に値を追加できません

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++; 
      } 
     } 
    } 
} 

セカンドクラスがある::はコードのためMatrixNの発現に[]でインデックスを適用することはできません:私はエラーを取得しておく

class MatrixN 
{ 

    double[,] m; 

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

次のように

ファーストクラスがあります

どのようなヘルプも非常に高く評価されますed。ありがとうございました。

答えて

1

matrixは、タイプMatrixNの変数です。タイプMatrixNはサブスクリプション/インデックス作成操作をサポートしていないため、値matrix[i, j]にアクセスすることも、値matrix[i, j] = v;を設定することもできません。

あなたは(それが公共することによって)MatrixNクラスのmメンバ変数を露出させ、および/設定matrix.mの値にアクセスするか、独自のインデックス演算子書くことができ、次のいずれか

class MatrixN { 
    private double[,] inner; 
    public double this[int x, int y] { 
     get { return inner[x, y]; } 
     set { inner[x, y] = value; } 
    } 
} 
関連する問題