2013-01-14 65 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