2013-01-14 44 views
-4

我有四类:
PointMass,它从PropPhysics继承,它从EntityPropPhysicsEntity均为抽象类),和World继承其具有List<Entity>Entities叫。奇怪的NullReferenceException

在这里,我试图添加一个PointMass到世界的List<Entity>

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

我检查PointMass“pMass”是否为null,但不是,并且引发相同的错误。

无论何时构建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); 
    } 
+5

这并不奇怪。机会是“MyWorld”为空或“MyWorld.Entities”为空。 -1:*请使用调试器从等式中移除“奇怪”* – 2013-01-14 08:37:45

回答

3

最有可能的,你忘了初始化pMyWorldMyWorld.Entities

我认为是后者,所以一定要确保你有一个像这样的代码中的World构造:

Entities = new List<Entity>(); 

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

BTW:pMass创建后不能为空。

0

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

Entities e = new List<Entity>(); 
+0

是的,就是这样。我的错。谢谢你们。 – user1976655