我工作在C#項目,我的代碼是財產以後這樣的:爲什麼當數組結構中的所有引用改變時?
public struct Point
{
public int X;
public int[,] arr;
}
List<Point> po=new List<Point>();
void func()
{
Point p1;
p1.arr = new int[1, 1];
p1.X = 10;
p1.arr[0, 0] = 1;
func2(p2);
p1.X=20;
p1.arr[0,0]=10;
}
void func2(Point h)
{
po.Add(h);
}
當我跟蹤這個代碼,並在變更p1.x,我在名單點(x參數)不會改變從FUNC2,但返回當將p1.arr更改爲10時,我列表中的點(arr參數)也會從1更改爲10.爲什麼發生這種情況?如何解決此問題?
它看起來像我只是將一個值添加到列表對象... – Brian 2013-03-06 21:54:55
我不明白 – 2013-03-06 21:55:31
'p2'從哪裏來?錯字? – 2013-03-06 21:56:26