3

我有一个具有零件属性的对象。但是有些部分是“父母”并且有子部分。这些子部件具有与父部件相同的所有属性(不是相同的属性值,只是具有它们自己的值的相同属性)。

所以对于每个 Part 对象,我想要一个子部件的列表属性。我想要做的是创建一个零件对象列表 - 如果它是父零件,则为零件对象中的每个子零件创建一个。

我的问题是......你能在一个对象中拥有一个相同对象类型的对象列表吗?(这甚至有意义吗?)

简单的例子:

public class Part
{
    private string _Part;
    private string _Description;
    private List<Part> _childParts = new List<Part>();
}
4

2 回答 2

5

是的,你可以,它是所有树结构的基石。

例如:

class Part {
   public List<Part> Children { get; set; }
   public Part Parent { get; set; }
}

是完全有效的。

于 2012-12-05T15:30:56.830 回答
3

我认为您需要实现复合模式:https ://en.wikipedia.org/wiki/Composite_pattern

于 2012-12-05T15:40:30.090 回答