C# 收藏可以吗<;ABC>;在ABC班?这是个好习惯吗?

C# 收藏可以吗<;ABC>;在ABC班?这是个好习惯吗?,c#,c#-4.0,C#,C# 4.0,我有一个类假设ABC,在这个类中我有一个ABC类型的集合,它是好的实践吗,在什么条件下我们应该尝试这种方法 Public Class ABC { Public Collection<ABC> abcCollection{get;set;} } 公共类ABC { 公共集合abcCollection{get;set;} } 在某些情况下,您可能希望将类与同一类的集合相关联。例如: public class Person { public Collection<Pe

我有一个类假设ABC,在这个类中我有一个ABC类型的集合,它是好的实践吗,在什么条件下我们应该尝试这种方法

Public Class ABC

{
   Public Collection<ABC> abcCollection{get;set;}
}
公共类ABC
{
公共集合abcCollection{get;set;}
}

在某些情况下,您可能希望将类与同一类的集合相关联。例如:

public class Person
{
    public Collection<Person> Family { get; set; }
    public Collection<Person> Children { get; set; }
}
公共类人物
{
公共集合族{get;set;}
公共集合子项{get;set;}
}

在某些情况下,您可能希望将类与同一类的集合相关联。例如:

public class Person
{
    public Collection<Person> Family { get; set; }
    public Collection<Person> Children { get; set; }
}
公共类人物
{
公共集合族{get;set;}
公共集合子项{get;set;}
}

当然,只要您需要实体具有相同实体的列表,就没有问题。有很多例子可以考虑:

  • 父项=>子项
  • 菜单=>子菜单

当然,只要您需要您的实体具有相同实体的列表,就没有问题。有很多例子可以考虑:

  • 父项=>子项
  • 菜单=>子菜单

当您想要创建一个
树结构时,可以使用这种方法。
例如,您创建一个节点类,并且您的节点可能包含子节点,诸如此类:

public class Node 
{
   public Node Parent { get; set; }
   public ICollection<Node> Childrens { get; set; }
}
公共类节点
{
公共节点父节点{get;set;}
公共ICollection子对象{get;set;}
}

当您想要创建树结构时,可以使用这种方法。例如,您创建一个节点类,并且您的节点可能包含子节点,诸如此类:

public class Node 
{
   public Node Parent { get; set; }
   public ICollection<Node> Childrens { get; set; }
}
公共类节点
{
公共节点父节点{get;set;}
公共ICollection子对象{get;set;}
}

这会产生矛盾吗?每次创建ADC对象时,它都会调用另一个对象(在集合中)。如果OP的代码在类构造函数@Highace2中创建了新实例,这是正确的,而上面的代码没有这样做。@MichaelPetrotta他仍然需要填充集合,然后又会出现这种悖论。不,@Highace2,如果在正确的地方做的话就不会。基本上:不是构造器。如果你要发布代码,你最好尝试使其有效,最好是可编译的。这会产生矛盾吗?每次创建ADC对象时,它都会调用另一个对象(在集合中)。如果OP的代码在类构造函数@Highace2中创建了新实例,这是正确的,而上面的代码没有这样做。@MichaelPetrotta他仍然需要填充集合,然后又会出现这种悖论。不,@Highace2,如果在正确的地方做的话就不会。基本上:不是构造函数。如果你要发布代码,你最好尝试使它有效,最好是可编译的。