Logo th.boatexistence.com

ปิดรับโทรออกไหม

สารบัญ:

ปิดรับโทรออกไหม
ปิดรับโทรออกไหม
Anonim

หากคุณถือทรัพยากรดั้งเดิม คุณ ใช้ทั้งทิ้งและปิดท้าย และทั้งคู่เรียกวิธีการทั่วไปที่ปล่อยทรัพยากรดั้งเดิม สำนวนเหล่านี้มักจะรวมกันโดยใช้วิธีการ Dispose(bool disposing) แบบส่วนตัว ซึ่ง Dispose call ด้วย true และ Finalize call ด้วย false

ใช้ Finalize vs Dispose เมื่อไหร่

วิธีการกำจัด () ใช้เพื่อปล่อยทรัพยากรที่ไม่มีการจัดการเมื่อใดก็ตามที่ถูกเรียกใช้ เมธอด finalize() ใช้เพื่อปล่อย ทรัพยากรที่ไม่มีการจัดการ ก่อนที่อ็อบเจ็กต์จะถูกทำลาย เมธอด dispose() จะถูกนำไปใช้เมื่อใดก็ตามที่มีเมธอด close()

วิธีการทิ้งและสิ้นสุดต่างกันอย่างไร

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

เลิกใช้สายไหม

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

ฉันควรโทรหา Dispose C หรือไม่

4 คำตอบ. กฎทั่วไป: หากคลาสใช้ IDisposable คุณควรเรียกเมธอด Dispose ทันทีที่คุณเสร็จสิ้นการใช้ทรัพยากรนี้ ให้รวมไว้ในคำสั่ง use ให้ดียิ่งขึ้นไปอีกเพื่อให้แน่ใจว่าเมธอด Dispose จะ ถูกเรียกแม้ว่าจะมีข้อยกเว้น: การใช้ (var reader=conn.