在silverlight中指定引用而不是值

在silverlight中指定引用而不是值,silverlight,reference,drawing,line,Silverlight,Reference,Drawing,Line,我正在silverlight中制作一个应用程序。在该应用程序中,我使用二维线数组作为 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数组中的值。我不明白问题出在哪里

我正在silverlight中制作一个应用程序。在该应用程序中,我使用二维线数组作为

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数组中的值。我不明白问题出在哪里。提前谢谢

您正在创建一个新线对象,然后将其与第二行一起丢弃:

Line line=new Line();
line =...
然后,将参照从阵列中指定给直线对象:

line=Ecg[i][j]
如果随后更改该线对象的属性,则该线对象与数组中的对象相同

您可能打算从数组中的对象复制值:

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;
但这一切似乎有点奇怪。你想要得到的最终结果是什么