[已解決] - 錯誤是我的,我沒有將世界(world_)鏈接到實體,所以這是空的。感謝大家的解釋!現在你可能已經知道,我正在製作一個遊戲引擎/框架,而且我已經把對象與引用鏈接起來。做一個變量是必需的 - 逃避NullReferenceException?
實施例:
public void Attach(Entity Entity)
{
entity_ = Entity;
entity_.world_.renderer_.AddComponent(this);
}
,增加了部件到渲染器的線失敗,NullObjectException。 我的想法是,這是因爲它是類的實現(當對象尚未確定)內,但這樣的事情在接下來的一段代碼工作:
public TGSGame()
{
...
Renderer = new RenderManager(this);
...
}
的代碼部分是TGSGame類裏面執行過!
有沒有人有想法我該如何克服這種異常?
非這些都是空的,我一步一步檢查和debuged。但是當我通過'this'作爲參數時,問題也出現在一段測試代碼中。另一點需要注意的是,代碼中的例外情況出現在遊戲部件所依賴的庫中,這可能是一個問題嗎? (思想例外只與DLL中的代碼引起) – Johnny 2010-01-19 16:58:24
@Johnny - 如果沒有這些東西都是'null',那麼問題是,你是不是向我們展示代碼(大概裏面'AddComponent')。你看過堆棧跟蹤嗎? (例如通過捕獲「例外」)。堆棧跟蹤是什麼樣的? – 2010-01-19 17:35:20
問題不在AddComponent中,它是將世界鏈接到實體的部分。感謝您的幫助和快速解答! – Johnny 2010-01-19 17:55:44