我有一个关于 XNA 的问题,我也是新手,在搜索谷歌后无法在文档中找到明确的答案。
问题一:
如果我这样做:
Rectangle afterMoveRect = collisionRectangle;
afterMoveRect.Offset((int)moveAmount.X, (int)moveAmount.Y);
我现在是否:
A. 用另一个名字引用collisionRectangle,然后移动collisionRectangle
或者
B. 创建了碰撞矩形的副本并且只移动了副本。
第二个问题:
如果我这样做:
Matrix transform = localTransform;
transform = transform * otherTransform;
我是创建了 localTransform 的副本并复制了该副本,还是引用了 localTransform 并将其与另一个标识符相乘?
两者的问题是相同的,我是否更改了原件(可能是无意的)
问题 3:
你怎么知道你是否改变了原来的?在使用赋值运算符时,如何知道是使用新名称(如 Java)引用原始对象还是创建另一个对象的深层副本?