การกำจัดถูกเรียกโดยอัตโนมัติหรือไม่?
การกำจัดถูกเรียกโดยอัตโนมัติหรือไม่?

วีดีโอ: การกำจัดถูกเรียกโดยอัตโนมัติหรือไม่?

วีดีโอ: การกำจัดถูกเรียกโดยอัตโนมัติหรือไม่?
วีดีโอ: ระวัง คุณอาจกำลังโดนดักฟังโดยไม่รู้ตัว 2024, อาจ
Anonim

ทิ้ง () จะไม่ เรียกอัตโนมัติ . หากมีไฟนอลไลเซอร์ก็จะเป็น เรียกอัตโนมัติ . การนำ IDisposable ไปใช้จะทำให้ผู้ใช้คลาสของคุณปล่อยทรัพยากรก่อนกำหนด แทนที่จะรอตัวรวบรวมขยะ หากผู้ใช้คลาส โทรทิ้ง () การล้างข้อมูลเกิดขึ้นโดยตรง

ของนั้นเรียกว่าทิ้งขยะหรือไม่?

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

ต่อมา คำถามคือ เมื่อใดที่เรียกว่า dispose method ใน C#? ค# | CharEnumerator. ทิ้ง () วิธี . นี้ กระบวนการ ใช้เพื่อเผยแพร่ทรัพยากรทั้งหมดที่ใช้โดยอินสแตนซ์ปัจจุบันของคลาส CharEnumerator NS ทิ้ง () กระบวนการ ปล่อยให้ CharEnumerator อยู่ในสถานะใช้ไม่ได้

ต่อมาอาจมีคนถามว่า จบการเรียก Dispose หรือไม่?

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

อะไรคือความแตกต่างระหว่างวิธีการ Finalize () และ Dispose ()?

NS วิธีจบ () ถูกเรียกโดยตัวรวบรวมขยะ วิธีการกำจัด () ใช้เพื่อปลดปล่อยทรัพยากรที่ไม่มีการจัดการทุกครั้งที่มีการเรียกใช้ วิธีการเสร็จสิ้น () ใช้เพื่อปลดปล่อยทรัพยากรที่ไม่มีการจัดการก่อนที่วัตถุจะถูกทำลาย NS วิธีการกำจัด () จะถูกนำไปใช้เมื่อใดก็ตามที่มีการปิด () กระบวนการ.