这显然是一个菜鸟问题,但在 XNA 中是......
Vector2 a;
Vector2 b;
a = b;
在任何情况下都与:
a.X = b.X;
a.Y = b.Y;
?
Vector2
是 a struct
(这是一个值类型)。
所以,如果你这样做a = b
。
这意味着它将内存复制b
到a
. 它相当于:
a.X = b.X;
a.Y = b.Y;
所以,如果你这样做:
b = new Vector2(1, 2);
a = b;
b.X = 5;
Console.WriteLine("a.X = {0}, a.Y = {1}", a);
Console.WriteLine("b.X = {0}, b.Y = {1}", b);
结果是:
a.X = 1, a.Y = 2
b.X = 5, b.Y = 2