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も主なオブジェクトと一緒にDBからこれらの仮想オブジェクトを読み込むことに気付いたので、それは問題であるかどうか疑問に思っていた。
可能な複製(http://stackoverflow.com/questions/8840567/garbage-collector-and-circular-reference)あなたは、そのオブジェクトツリーでアーカイブしようとしている何 –
?あなたの問題が循環参照を持つデータ構造を必要とする場合、そのようなデータ構造を作成することはOKです...そこには何も危険はありません;) – JanDotNet
@JanDotNetと同様に、何も悪いことはありません。より良い構造を作成することで、時間/空間を安全にすることができます。あなたは確かに1つのリストをここで確実に安全にすることができます...しかし、それは本当にあなたがアーカイブしたいものに依存します。 – Cataklysim