我现在真的很困惑。
我有一个拥有大型数组的WinForm
int[,] map = new int[1000, 1000];
我还有一个包含方法“Draw”的类。 draw方法现在需要获取表单中数组中位置的值。我尝试做以下事情:
在我的Form类中,我添加了
public int mapContentAtXY(Point mapPosition)
{
return map[mapPosition.X, mapPosition.Y];
}
现在,如果我尝试执行
myInt = Ingame.mapContentAtXY(myPoint);
//Note: Ingame is the name of my Form
它说
Error 2 'Neu.Ingame' does not contain a definition for 'mapAtPositionXY'
这真令人困惑,我刚刚添加了这个定义,它也被设置为公开。那么为什么地狱不起作用?
答案 0 :(得分:0)
您的方法mapContentAtXY
是一种实例方法。
如果您是从表单实例中调用它,请将Ingame
更改为this
。
myInt = this.mapContentAtXY(myPoint);
否则使用表单实例
myInt = frmInGameInstance.mapContentAtXY(myPoint);
答案 1 :(得分:0)
在创建或调用draw-class的实例时,需要使用this
将Form的实例传递给draw-class。然后,您可以通过该表单实例访问该方法。
或强>
不要将map
存储在表单中,而是存储在该绘图类中。将mapContentAtXY方法移动到draw-class。使用表单中draw-class的一个实例来更新该映射。