我有一个方法调用者addColisionBox,当我调用它并设置值时,我在调用它的地方得到nullpointer ..我将显示一些代码:
public void addCollisionBox(int x, int y, int arrayNum)
{
//Creating a new rectangle at the x & y cord passed in
rectangle[arrayNum] = new Rectangle(x, y, R_Width, R_Height);
}
我在另一个类中创建了这样的内容:
CollisionHandler collision;
....
//CurrentX and CurrentY position to pass into addCollisionBox method and at the array number i
collision.addCollisionBox(currentX, currentY, i);
它在消息框中说Visual C#express表示:“对象引用未设置为对象的实例。”
答案 0 :(得分:6)
您没有将collision
对象初始化。你应该有类似以下的东西。 e.g。
CollisionHandler collision = new CollisionHandler();
...或者在使用对象之前如何创建/抓取对象的实例。
答案 1 :(得分:2)
您还没有创建另一个实例,您所做的就是创建给定类型的变量。
CollisionHandler collision = new CollisionHandler();
// ^ variable ^ instance of object
答案 2 :(得分:1)
您尚未创建CollisionHandler对象的实例。尝试这样的事情:
CollisionHandler collision = new CollisionHandler();
....
//CurrentX and CurrentY position to pass into addCollisionBox method and at the array number i
collision.addCollisionBox(currentX, currentY, i);
答案 3 :(得分:0)
你需要
CollisionHandler collision = new CollisionHandler();
您刚刚声明了变量,但没有将其设置为任何内容,因此是空引用异常。
答案 4 :(得分:0)
当您尝试在其上调用collision
方法时,我建议addCollisionBox
为空,从而导致空取消引用。如果它在某个阶段确实有一个值,那么你可能会在某个地方删除它,但是考虑到你粘贴的代码,你似乎更有可能只需要创建CollisionHandler
的实例,因为它不会出现你正在这样做。
CollisionHandler collision = new CollisionHandler();