19
การใช้อินเตอร์เฟส IDisposable อย่างเหมาะสม
ฉันรู้จากการอ่านเอกสารของ Microsoftว่าการใช้IDisposableอินเทอร์เฟซหลักคือการล้างทรัพยากรที่ไม่มีการจัดการ สำหรับฉัน "ไม่มีการจัดการ" หมายถึงสิ่งต่าง ๆ เช่นการเชื่อมต่อฐานข้อมูลซ็อกเก็ตที่จับหน้าต่าง ฯลฯ แต่ฉันเห็นรหัสที่ใช้Dispose()วิธีการกับทรัพยากรที่มีการจัดการฟรีซึ่งดูเหมือนว่าซ้ำซ้อนกับฉันเนื่องจากตัวเก็บขยะควรดูแล สำหรับคุณ ตัวอย่างเช่น: public class MyCollection : IDisposable { private List<String> _theList = new List<String>(); private Dictionary<String, Point> _theDict = new Dictionary<String, Point>(); // Die, clear it up! (free unmanaged resources) public void Dispose() { _theList.clear(); _theDict.clear(); _theList = null; _theDict = …