2012-10-24 1 views
0

Je crée une classe qui contiendra une liste d'instances enfants dont j'ai besoin de faire mémoire de leur objet parent.Quelle est la manière appropriée de lier tous les objets enfants au courant?

class Node 
{ 
    List<Node> childNodes; 
    Node ParentNode; 
    public Node(List<Node> nodes) 
    { 
     childNodes = nodes; 
     foreach (var node in childNodes) 
     { 
      node.ParentNode = this; 
     } 
    } 
} 

Est-ce un bon moyen ou manque-t-il quelque chose?

+1

Cela me semble tout à fait raisonnable. Je voudrais changer vos champs pour être des propriétés, mais à part cela, votre structure est saine. –

Répondre

0
I'm assuming this isn't a chicken egg problem. The Parent would be created first and therefore children would be added later. 

public class Node 
{ 
    public List<Node> ChildNodes {get; private set;} 
    public Node ParentNode {get; private set;} 

    public Node():this(null) 
    { 
    } 

    public Node(Node parentNode) 
    { 
     ParentNode = parentNode; 
     ChildNodes = new List<Node>(); 
    } 

    public void AddChildNode(Node childNode){ 
     childNode.ParentNode = this; 
     ChildNodes.Add(childNode); 
    } 

} 
Questions connexes