Tôi đang đối mặt với một tình huống mà tôi có các đối tượng phụ thuộc và tôi muốn có thể xóa một đối tượng và tất cả các tham chiếu đến đối tượng đó.Xóa các mục khỏi danh sách và tất cả các tham chiếu đến chúng
Giả sử tôi có cấu trúc đối tượng như mã bên dưới, với loại Chi nhánh tham chiếu hai Nút.
public class Node
{
// Has Some Data!
}
public class Branch
{
// Contains references to Nodes
public Node NodeA
public Node NodeB
}
public class Graph
{
public List<Node> Nodes;
public List<Branch> Branches;
}
Nếu tôi loại bỏ một Node từ danh sách các nút trong lớp Graph, nó vẫn còn có thể là một hoặc nhiều đối tượng chi nhánh vẫn còn chứa một tham chiếu đến Node loại bỏ, do đó duy trì nó trong bộ nhớ, trong khi thực sự những gì tôi sẽ khá giống như sẽ được thiết lập bất kỳ tham chiếu đến các Node loại bỏ null và để cho đá thu gom rác thải trong.
Ngoài liệt kê qua từng chi nhánh và kiểm tra mỗi Node tuần tự tham khảo, được có bất kỳ ý tưởng thông minh về cách tôi loại bỏ tài liệu tham khảo với Node trong mỗi thể hiện Branch và thực sự là bất kỳ lớp nào khác tham chiếu đến Node đã loại bỏ?
Bạn có thực sự lưu trữ bất kỳ dữ liệu nào trên Chi nhánh không? Nếu không, bạn có thể loại bỏ hoàn toàn lớp đó và chỉ lưu trữ các nút liên quan trên lớp Node. –
Xin chào, Có, tôi đang lưu trữ một số dữ liệu khác, cấu trúc dữ liệu ở trên chỉ là một ví dụ đơn giản để hiển thị nơi tham chiếu của mô hình thực tế của tôi. – LiamV