程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 當心Dictionary帶來的一種隱式內存洩漏

當心Dictionary帶來的一種隱式內存洩漏

編輯:C#入門知識

最近在看Dictionary的源代碼的時候, 突然想到Dictionary的不當使用中有一種隱含內存洩漏的可能.

簡化使用場景

      小A正在寫一個簡單的圖書銷售系統.

      他首先需要處理的是訂單和訂單裡面對應的書目集合. 接著他發現自己需要一個特定的內存結構, 來臨時保存所有的訂單及其伴隨的銷售書目集合, 以減小對數據庫的壓力. 小A想到了詞典Dictionary這個保存關聯數據最好用的結構 - 將訂單Order對象做為鍵, 將對應的銷售書目Books作為值, 保存在詞典中.

      訂單中包含訂單ID/訂貨人ID/訂貨時間. 小A知道, 要想將Order對象作為鍵, 他必須重寫Order類的GetHashCode()方法和Equals()方法, 使這兩個函數有意義而不是接受系統默認的實現, 這是Dictionary所要求的. 這個功能實現示意如下:

Order Class
  1.  internal class Order
  2. {
  3.      public int ID { get; set
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved