Пример #1
0
        private VisitorResult VisitEntityImpl(VisitEntityDelegate visitor)
        {
            if (visitor(this) == VisitorResult.ExitVisit)
            {
                return(VisitorResult.ExitVisit);
            }

            var children = Children;

            foreach (var child in Children)
            {
                if (child.VisitEntityImpl(visitor) == VisitorResult.ExitVisit)
                {
                    return(VisitorResult.ExitVisit);
                }
            }

            return(VisitorResult.ContinueVisit);
        }
Пример #2
0
 /// <summary>
 /// Visit this entity and any children in a depth first traversal until every node is visited
 /// or until the visitor returns VisitorResult.ExitVisit
 /// </summary>
 public void VisitEntity(VisitEntityDelegate visitor)
 {
     VisitEntityImpl(visitor);
 }