2IT Баг в доке к Visit(Expression expr, Func<Expression, bool> func)
От: Jack128  
Дата: 23.06.16 09:26
Оценка: 74 (1)
Ну либо в документации, либо в реализации.

/// <summary>Visits expression tree.</summary>
/// <param name="expr"><see cref="T:System.Linq.Expressions.Expression" /> to visit.</param>
/// <param name="func">Visit function. Return false to stop.</param>

А если судить по коду, то false — означает, что не нужно обходить ДОЧЕРНИЕ узлы текущего нода. Но обход соседних узлов будет продолжен

        [Test]
        public void XXX()
        {
            var testExpr = Expr.Func((int x, int y) => x + y);

            testExpr.Visit(expr =>
            {
                Console.WriteLine($"expr = {expr}");
                if (expr.NodeType == ExpressionType.Parameter)
                {
                    Console.WriteLine("Отмена");
                    return false;
                }
                return true;
            });
        }


expr = (x, y) => (x + y)
expr = (x + y)
expr = x
Отмена
expr = y
Отмена
expr = x
Отмена
expr = y
Отмена

 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.