-4

我有四个类:
PointMass,继承自PropPhysics,继承自EntityPropPhysics并且Entity都是抽象类),并且World有一个List<Entity>被调用的Entities.

在这里,我正在尝试将 PointMass 添加到 World 的List<Entity>.

奇怪的是,每当我尝试添加一个新的、全局定义的甚至是现有的PointMass(在方法的范围内)时,我都会收到“NullReferenceException未处理”错误。

我检查 PointMass " pMass" 是否为空,但它不是,它会引发相同的错误。

PointMass我什至在构造a 时显示一个消息框,但它仍然会引发相同的错误。

其他研究没有发现运气。

    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

最有可能的是,您忘记了初始化p,MyWorldMyWorld.Entities.

我假设是后者,因此请确保您在以下构造函数中有这样的代码World

Entities = new List<Entity>();

null通过使用调试器,您可以很容易地找出实际上是哪个变量。请在将来发布此类问题之前这样做。

顺便说一句:pMass创建后不能直接为空。

于 2013-01-14T08:37:44.217 回答
0

尝试初始化MyWorld.Entitiesp在您的代码中。喜欢;

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