复制一个值,但在更改时不会受到影响

时间:2014-02-08 12:45:52

标签: c# xna

我正在为一艘潜艇编程AI,当它在水面上时它“看到”一个车队,但预测车队在水下时的位置。当我将护卫队的位置复制到潜艇类内的Vector2时,只要护卫队的位置更新,这个Vector2仍会改变。那么如何在没有将该位置与原始位置相关联的情况下复制车队的位置?

1 个答案:

答案 0 :(得分:2)

你试过了吗?

Vector2 vec2 = new Vector2(vec1.X,vec1.Y);

而不是

Vector2 vec2 = vec1;

了吗?

修改
您可以浏览数组/列表并将新矢量添加到新列表中。

for(int i=0;i<originalList.Count;i++){
    newList.Add(new Vector2(originalList[i].X,originalList[i].Y));
}

<强> EDIT2:
当你&#34;复制&#34;一个非原始变量,例如你的自定义类,那么你实际上是一个新的&#34;引用&#34;而不是&#34;副本&#34;。为了制作副本,您必须创建一个新实例,并将原始实例中的基元复制到新实例。
Primitives.