我有一個遊戲,玩家連接並看到一系列挑戰。在代碼中,挑戰以其狀態存儲在字典中,因此我有一個Dictionary<string, List<Challenge>>
來存儲它們。優化使用C#事件?
我有一個類可以處理所有相關的挑戰操作,例如從服務器檢索它們,並且此類發送事件以通知感興趣的對象有關更新。我的問題是我的代理事件正在發送整個字典,我意識到這可能是垃圾創建甚至執行速度非常糟糕。
我的應用程序將運行在移動設備上,並且我在Unity上工作,因此我僅限於.Net 3.5(一些4個功能)。性能在這裏至關重要,所以我想知道這樣做會更有效率嗎?
我馬上看到的唯一事情就是從事件委託中刪除字典,並訪問我的單例實例變量而不是將其作爲參數。但我想確定沒有更好的方法,而且這確實會更有效率。
當然你只是真的在傳遞對字典的引用,因爲字典是一個引用類型。在通過它之前,你沒有對字典進行克隆? –
是的,你是對的。我擔心一些內部人員不得不創建臨時副本或類似的東西,但顯然沒有這樣的事情。 –