การอ้างอิงแบบวงกลมเกิดขึ้นเมื่อทรัพยากรที่พึ่งพาอาศัยกันตั้งแต่สองรายการขึ้นไปทำให้เกิดเงื่อนไขการล็อก ทำให้ทรัพยากรใช้ไม่ได้
ในการจัดการปัญหาการอ้างอิงแบบวงกลมใน C # คุณควรใช้การรวบรวมขยะ ตรวจจับและรวบรวมการอ้างอิงแบบวงกลม ตัวรวบรวมขยะเริ่มต้นด้วยโลคัลและสแตติกและทำเครื่องหมายแต่ละออบเจ็กต์ที่สามารถเข้าถึงได้ผ่านลูก ๆ ของพวกเขา
ด้วยวิธีนี้ คุณสามารถจัดการกับปัญหาด้วยการอ้างอิงแบบวงกลม
สมมติว่าคลาสต่อไปนี้อยู่ในการอ้างอิงแบบวงกลม ที่นี่ทั้งคู่ต่างพึ่งพาอาศัยกัน -
public class A { B Two; } public class B { A one; }
ในการแก้ปัญหา ให้สร้างอินเทอร์เฟซ -
public interface myInterface { } public class A { myInterface Two; } public class B: myInterface { A one; }