0

私はSilverlightでアプリケーションを作成しています.そのアプリケーションでは、2次元の線の配列を次のように使用しています

Line[][] Ecg=new Line[4][];

そして、アプリケーションの後半では、コードを次のように使用しています

Line line=new Line();
line=Ecg[i][j];
line.Y1=line.Y1 + 100;
line.Y2=line.Y2 + 100;
//cod for drawing of line

上記の問題は、オブジェクト行の Y1 と Y2 の値を増やすたびに、Ecg 配列の値が増加することです。何が問題なのかわかりません。前もって感謝します。

4

1 に答える 1

0

新しい新しいLine()オブジェクトを作成し、それを2行目で破棄します。

Line line=new Line();
line =...

次に、配列からLine()オブジェクトへの参照を割り当てます。

line=Ecg[i][j]

次に、そのLineオブジェクトのプロパティを変更すると、それは配列内にあるのと同じオブジェクトになります。

代わりに、配列内のオブジェクトから値をコピーするつもりでしたか?:

Line line=new Line()
    {
        X1= Ecg[i][j].X1, 
        X2= Ecg[i][j].X2, = Ecg[i][j].Y1, 
        Y2= Ecg[i][j].Y2 
    });
line.Y1=line.Y1 + 100;
line.Y2=line.Y2 + 100;

しかし、これはすべて少し奇妙に思えます。あなたが得ようとしている最終結果は何ですか?

于 2012-05-10T15:16:47.453 に答える