0

VisitParameter が各パラメータを 2 回出力するのはなぜですか?

class MyExpressionVisitor : ExpressionVisitor
    {
        protected override Expression VisitParameter(ParameterExpression node)
        {
            Console.WriteLine(node.Name);
            Console.WriteLine("*************************");
            return base.VisitParameter(node);
        }
    }

    class Program
    {
        public static void Main(string[] args)
        {
            Expression<Func<int,int int>> someExpr = (x,y) => x + y + 1;
            var myVisitor = new MyExpressionVisitor();
            myVisitor.Visit(someExpr);
            Console.ReadKey();
        }
    }

結果:

バツ


y


バツ


y


4

1 に答える 1

0

なるほど、いろいろ調べて答えが出ました。このVisitParameter()関数は、すべてのパラメーターを返します * 関数でそれらが使用された時間。

Expression<Func<int,int int>> someExpr = (x,y) => x + y + 1;

x2回使用されて1回なyので、x2回と1回yだけ表示されます。

于 2012-12-15T20:36:57.533 に答える