2012-05-29 177 views
-2

所以我有一個很容易解決(我認爲)的問題。 我正在做一些迷你遊戲,可以說我有遊戲1,遊戲2,遊戲3。 我可以開始game1,然後完成後我可以從頭開始遊戲。 問題是,當我再次開始遊戲時,我做了game1 = new Game1();它不是從0開始的,有些對象已經被賦予了game1,所以我顯然會得到錯誤。重新創建新對象

澄清一點點: 用戶選擇:Game1,Game2,Game3 - >他選擇Game1 - > CreateGame1(); - > game1 = new Game1(); 用戶完成遊戲並選擇再次進入遊戲:CreateGame1() - > game1 = new Game1();這裏是問題所在。 game1在我的課程開始時定義爲Game1 game1;

有沒有簡單的方法來解決這個問題,還是我應該手動刪除每個項目? 在此先感謝!

+0

可以粘貼一些你的代碼?它聽起來像你有一個靜態屬性的地方。 –

回答

4

我認爲你有一些靜態屬性,其值不會在創建新對象時重置。我沒有看到這個問題的其他原因。無論如何,由於您沒有發佈代碼,因此很難正確回答問題。

+0

感謝您的快速響應,是的,我相信這是問題所在。我可以怎樣處理事件?我有幾個動作需要是靜態的,那麼這會是一個問題嗎? – waclock

+0

我認爲你可以在構造函數中重置你的靜態屬性值。 **但是**,如果您需要重置它們,您一定要確保它們需要靜態。 – platon

0

你在Game類中使用靜態字段嗎?

當您創建一個類的新實例時,所有非靜態字段都將被初始化。但是靜態字段不是每個實例,所以它們保持它們的值。

0

如果您使用靜態字段,請記住這些是「類級別」,並且在創建新實例時不要「重置」。

0

我想我的誤解,因爲創建一個新的實例應該清楚什麼每個定義或在構造函數或靜態

原位缺口,如果im缺少點然後嘗試尋找到了IDisposable