ทำไมเราต้อง IDisposable?
ทำไมเราต้อง IDisposable?

วีดีโอ: ทำไมเราต้อง IDisposable?

วีดีโอ: ทำไมเราต้อง IDisposable?
วีดีโอ: IDisposable Exposed 2024, อาจ
Anonim

IDisposable จะไม่ล้างสิ่งใดหรือทำลายวัตถุ การเรียกใช้ Dispose() จะไม่ทำอะไรเลยหากฟังก์ชันนั้นไม่ทำอะไรเลย การใช้ IDisposable เป็นรูปแบบ การอ้างอิงที่มีการจัดการไปยังอ็อบเจ็กต์อื่นๆ ป้องกันไม่ให้อ็อบเจ็กต์ถูกรวบรวมโดยตัวรวบรวมขยะ

ในทำนองเดียวกัน คุณอาจถามว่าทำไมจึงใช้อินเทอร์เฟซ IDisposable

IDisposable บ่อยๆ ใช้แล้ว เพื่อใช้ประโยชน์จากคำสั่ง using และใช้ประโยชน์จากวิธีง่ายๆ ในการล้างข้อมูลอ็อบเจ็กต์ที่มีการจัดการแบบกำหนดได้ จุดประสงค์ของรูปแบบการกำจัดคือเพื่อให้กลไกในการทำความสะอาดทรัพยากรทั้งที่มีการจัดการและที่ไม่มีการจัดการ และเมื่อสิ่งนั้นเกิดขึ้นขึ้นอยู่กับวิธีการเรียกวิธีการกำจัด

นอกจากนี้ IDisposable คืออะไร? IDisposable เป็นอินเทอร์เฟซที่มีเมธอดเดียว Dispose() สำหรับการปล่อยทรัพยากรที่ไม่มีการจัดการ เช่น ไฟล์ สตรีม การเชื่อมต่อฐานข้อมูล และอื่นๆ

เมื่อพิจารณาถึงสิ่งนี้ ฉันควรใช้ IDisposable เมื่อใด

ในชั้นเรียน คุณ ควรใช้ IDisposable และเขียนทับวิธี Dispose เพื่อให้คุณสามารถควบคุมเวลาที่หน่วยความจำว่างได้ ถ้าไม่ ความรับผิดชอบนี้จะถูกทิ้งให้ตัวรวบรวมขยะเพื่อเพิ่มหน่วยความจำเมื่ออ็อบเจ็กต์ที่มีทรัพยากรที่ไม่มีการจัดการได้รับการสรุปผล

ทำไมเราต้องทิ้งใน C #

แนะนำให้ใช้เสมอ ทิ้ง วิธีการทำความสะอาดทรัพยากรที่ไม่มีการจัดการ แต่ทรัพยากรที่ไม่มีการจัดการ (เช่น วัตถุที่สร้าง Windows API, ไฟล์, วัตถุการเชื่อมต่อฐานข้อมูล, วัตถุ COM ฯลฯ) อยู่นอกขอบเขตของ. NET framework เรา ต้องทำความสะอาดทรัพยากรของเราอย่างชัดเจน สำหรับวัตถุประเภทนี้.