Пример #1
0
 public override Expression Visit(Expression node)
 {
     if (node == null)
     {
         return(null);
     }
     node = base.Visit(node);
     if (Predicate(node))
     {
         var par = node.Type == typeof(void) ? Expression.Parameter(typeof(object), ""): Expression.Parameter(node.Type, "r_" + Replaced.Count);
         Replaced.Add(par, node);
         ParameterOrder.Add(par);
         return(par);
     }
     else
     {
         return(node);
     }
 }
Пример #2
0
        public override Expression Visit(Expression node)
        {
            if (node == null)
            {
                return(null);
            }
            node = base.Visit(node);
            var annotator = Predicate(node);

            if (annotator != null)
            {
                var par = Expression.Parameter(node.Type == typeof(void) ? typeof(object) : node.Type, "r_" + Replaced.Count);
                annotator(par)?.Apply(par.AddParameterAnnotation);
                Replaced.Add(par, node);
                ParameterOrder.Add(par);
                return(par);
            }
            else
            {
                return(node);
            }
        }