있음 C# 있음이 효율적인 프로그래밍 무엇입니까?가상 ICollection
t1에 연결된 t1과 t2에 대한 t2 링크가 궁금 해서요. 따라서 그것은 또한 자신의 사이트로 연결되어 더 많은 공간을 차지하게 만들거나 위험한 알고리즘/코드입니까?
static void Main(string[] args)
{
Test t1 = new Test(1);
Test t2 = new Test(2);
Test t3 = new Test(3);
Test t4 = new Test(4);
t1.Links = new List<Test>();
t1.Links.Add(t2);
t2.Links = new List<Test>();
t2.Links.Add(t1);
Console.WriteLine(t1.Links.First().Links.First().id);
Console.Read();
return;
}
public class Test
{
public int id { get; set; }
public virtual ICollection<Test> Links { get; set; }
public Test(int Id)
{
id = Id;
}
}
MVC에서이 유형의 구조를 사용하고 있습니다. 나는 MVC가 주 객체와 함께 DB에서 이러한 가상 객체를로드한다는 것을 알아 차렸다. 그래서 문제가 될지 궁금해했다.
가능한 복제 (http://stackoverflow.com/questions/8840567/garbage-collector-and-circular-reference) 해당 오브젝트 트리에 보관하려고하는 어떤 –
? 문제가 순환 참조가있는 데이터 구조를 필요로하는 경우 그러한 데이터 구조를 만드는 것이 좋습니다 ... 위험하지는 않습니다.) – JanDotNet
@JanDotNet처럼 방금 말했듯이 아무 것도 없습니다. 더 나은 구조를 만들면 안전 시간/공간을 확보 할 수 있습니다. 당신은 확실하게 목록 하나를 여기에서 목록으로 만들 수 있었다 ... 그러나 당신이 보관하고 싶은 무슨을에 진짜로 달려있다. – Cataklysim