2

初めての投稿。私は C# の初心者で、多次元配列に値を設定するのに少し苦労しています。配列はあるクラスに保持されており、別のクラスから値を設定しようとしています。私が解決できない問題は、他のクラスから配列変数を初期化する方法ですか? 1つのクラス(GRID)で私は持っています:

public float[,] values;

次に、別のクラスで、次のようなクラス オブジェクト (グリッド) を使用して配列を参照しようとします。

GRID grid = new GRID();
this.lblFirstVal.Text = "First Value (0,0): " + grid.values[0, 0];

そして、コードの grid.values[0,0] 部分でエラーが発生します: オブジェクト参照がオブジェクトのインスタンスに設定されていません。

オブジェクト指向プログラミングにはまだ少し慣れていないので、おそらく何かを正しく理解していませんが、私の人生ではこれを解決することはできません。助けてくれてありがとう!

4

1 に答える 1

1

valuesフィールド初期化子を使用して、配列を適切に初期化してください。

public float[,] values = new float[1, 1];    // new 1 by 1 array

または、コンストラクターでフィールドの値を設定します。

public float[,] values;

public GRID() {
    this.values = new float[1, 1];           // new 1 by 1 array
}

または、フィールドの値を外部から設定できます。

GRID grid = new GRID();
grid.values = new float[1, 1];               // new 1 by 1 array
this.lblFirstVal.Text = "First Value (0,0): " + grid.values[0, 0];

もちろん、幅と高さを 1 以外に設定することもできます。

于 2013-08-17T21:47:42.187 に答える