[This is preliminary documentation and is subject to change.]
public void CallTree( CallTreeData callTreeData )
- callTreeData (CallTreeData)
- A helper object containing the delegate to call for contained nodes in the tree, the delegate to call for associated members, the root first indicator, and a set of parameters to pass to called delegates.
A CallTree method is generated for every generated derived class. In collaboration with the IndexedList<(Of <(<'T>)>)> class, these methods walk the containment tree from the object on which this method is first called. This tree walk can be root first or root last, depending on a value set in the CallTreeData parameter
At every object node, the TreeCallContained delegate in the CallTreeData parameter is called for that node. For scalar nodes, it is called once. for collection nodes, it is called once for the collection itself, and then once for every object in the collection. These calls will recurse all the way down the containment tree, but not below any node where the delegate call returns false.
For associated members of each node, both scalar and collection members, the TreeCallAssociated delegate in the CallTreeData parameter is called. However, this does not result in any recursion, and there is no return value from this delegate.
The descent can be stopped from going below any node. This happens if the called TreeCallContained method returns false for a particular node. This applies to both scalar and collection nodes. Note that this works only when the RootFirst property in callTreeData is true.