-4

私は 4 つのクラスを持っています:
PointMassを継承するPropPhysics、 を継承するEntity(PropPhysicsでありEntity、両方とも抽象クラスです)、および呼び出されWorldた.List<Entity>Entities

ここでは、PointMass を World の に追加しようとしていList<Entity>ます。

奇妙なことに、新しくグローバルに定義されたもの、または既存PointMassのもの (メソッドのスコープ内) を追加しようとすると、「NullReferenceException処理されていません」というエラーが表示されます。

PointMass " " が null かどうかを確認しましpMassたが、そうではなく、同じエラーが発生します。

a が構築されるたびにメッセージ ボックスを表示することさえできますPointMassが、それでも同じエラーが発生します。

他の研究からは幸運は見つかりませんでした。

    private void Display_Click(object sender, EventArgs e)
    {
        p.PositionX = 0;
        p.PositionY = 0;
        p.Mass = 5;

        PointMass pMass = new PointMass();
        if (pMass==null)
        {            
            MessageBox.Show("error: Mass is null");
        }

        MyWorld.Entities.Add(new PointMass());
        MyWorld.Entities.Add(pMass);
        MyWorld.Entities.Add(p); 
    }
4

2 に答える 2

3

pMyWorldまたはの初期化を忘れている可能性がありますMyWorld.Entities

私は後者を想定しているので、のコンストラクターに次のようなコードがあることを確認してくださいWorld

Entities = new List<Entity>();

nullデバッガーを使用すると、実際にどの変数であるかを非常に簡単に見つけることができます。そのような質問を投稿する前に、今後そうしてください。

ところで:pMass作成直後に null にすることはできません。

于 2013-01-14T08:37:44.217 に答える
0

MyWorld.Entities初期化するかp、コードで試してください。好き;

Entities e = new List<Entity>();
于 2013-01-14T08:38:42.140 に答える