В C# это эффективное программирование?Виртуальные ICollection
Мне было интересно, так как t1 ссылки на t2 и t2 ссылки на t1 и, следовательно, он также ссылается на себя, будет ли он занимать больше места или, как это опасный алгоритм/код?
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 также загружает эти виртуальные объекты из БД вместе с основным объектом. Поэтому мне было интересно, будет ли это проблемой
Возможный дубликат [сборщика мусора и круговой ссылки] (http://stackoverflow.com/questions/8840567/garbage-collector-and-circular-reference) –
Что вы пытаетесь архивировать с этим объектом дерева? Если для вашей проблемы требуется структура данных с циклическими ссылками, вполне нормально создавать такую структуру данных ... в ней нет ничего опасного;) – JanDotNet
Как @JanDotNet просто сказал, в этом нет ничего плохого. Возможно, вы могли бы защитить время/пространство, создав лучшую структуру. Вы могли бы определенно сохранить один Список здесь ... но это действительно зависит от того, что вы хотите Архивировать. – Cataklysim