【发布时间】:2016-04-15 17:41:09
【问题描述】:
我正在使用来自其他对象的值创建一个对象。就像这样:
MAP.cs
int[][] map = {......};
Mob m = new Mob(0,0,map);
并调用 Mob 的类函数 Move()
m.Move();
移动函数如下所示:
int xp = (int)Math.Floor(x / 32);
int yp = (int)Math.Floor(y / 32);
int[] result = lookForClosest(xp, yp);
this.nextX = result[1];
this.nextY = result[0];
map[this.nextY][this.nextX] = 1;
在另一个类(MainWindow)中使用 DispatcherTimer 调用函数 此应用程序的结果是更改了 MAP 类中的地图属性。唯一的改变应该是在 Mob 对象的 map 属性中。有什么解释和可能的解决方法吗?
【问题讨论】:
-
您是否尝试过将
map数组的副本传递给Mob构造函数?
标签: c# pass-by-reference pass-by-value