2011-12-09 9 views
1

私は、メソッドの呼び出し元addColisionBoxを持っていると私はそれを呼び出す場所イムでnullポインタを取得し、それを呼び出すと、それに値を設定するとき..私はいくつかのコードが表示されます:これはなぜNullReferenceExceptionを出すのでしょうか?

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#があること配る発現していることをメッセージボックスに言う:「オブジェクト参照がオブジェクトのインスタンスに設定されていません」

+2

あなたはcollision = new CollisionHandler()を忘れています。 –

+0

ああ私はこれを忘れています.. – Rakso

+1

宣言とメソッド呼び出しの間にオブジェクトを初期化するコードがない限り、オブジェクトを初期化していないため、NullPointerExceptionが発生しています。 – tafoo85

答えて

6

collisionオブジェクトを初期化していません。あなたは次のようなものがあるはずです。例えば

CollisionHandler collision = new CollisionHandler(); 

...オブジェクトを使用する前に、オブジェクトのインスタンスを作成または取得しています。

+0

私は10分後にこの回答を受け入れます。私は明らかに受け入れる前に待たなければなりません。 – Rakso

2

別のインスタンスを作成していないので、指定したタイプの変数を作成するだけです。

CollisionHandler collision = new CollisionHandler(); 
//    ^variable   ^instance of object 
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); 
0

あなたは

CollisionHandler collision = new CollisionHandler(); 

を必要とするあなただけの変数を宣言したが、何も、それゆえnull参照の例外に設定していませんでした。

0

addCollisionBoxメソッドを呼び出そうとしたときにcollisionがヌルであり、null参照が発生していると考えられます。いくつかの段階で価値がある場合はおそらくどこかで削除していますが、貼り付けたコードがあれば、CollisionHandlerのインスタンスを作成する必要があるようですそうする。

CollisionHandler collision = new CollisionHandler(); 
関連する問題