การอ้างอิงแบบวงกลมเกิดขึ้นเมื่อทรัพยากรที่พึ่งพาอาศัยกันตั้งแต่สองรายการขึ้นไปทำให้เกิดเงื่อนไขการล็อก ทำให้ทรัพยากรใช้ไม่ได้
ในการจัดการปัญหาการอ้างอิงแบบวงกลมใน 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;
}