Ejemplo n.º 1
0
        protected override Expression VisitSimpleLambdaExpression(SimpleLambdaExpression node)
        {
            this.Write("^");

            if (node.ReturnType != null)
            {
                this.Write(node.ReturnType);
            }

            this.Write("(");

            foreach (ParameterExpression parameter in node.Parameters)
            {
                this.Write(parameter.Type);
                this.Write(" ");
                this.Write(parameter.Name);
            }

            this.WriteLine(")");

            if (node.Body.NodeType != ExpressionType.Block)
            {
                using (this.AcquireIndentationContext(BraceLanguageStyleIndentationOptions.IncludeBraces))
                {
                    if (node.Variables.Count > 0)
                    {
                        foreach (var variable in node.Variables)
                        {
                            this.WriteVariableDeclaration((ParameterExpression)variable);
                        }

                        this.WriteLine();
                    }

                    this.Visit(node.Body);
                }
            }
            else
            {
                this.Visit(node.Body);
            }

            return node;
        }
Ejemplo n.º 2
0
        protected virtual Expression VisitSimpleLambdaExpression(SimpleLambdaExpression expression)
        {
            var body = this.Visit(expression.Body);
            var parameters = this.VisitExpressionList(expression.Parameters);

            if (body != expression.Body || parameters != expression.Parameters)
            {
                return new SimpleLambdaExpression(expression.ReturnType, body, expression.Variables, parameters);
            }

            return expression;
        }
Ejemplo n.º 3
0
        protected override Expression VisitSimpleLambdaExpression(SimpleLambdaExpression node)
        {
            this.Write('(');

            for (var i = 0; i < node.Parameters.Count; i++)
            {
                var paramterExpression = node.Parameters[i] as ParameterExpression;

                if (paramterExpression == null)
                {
                    continue;
                }

                this.Write(paramterExpression.Name);

                if (i < node.Parameters.Count - 1)
                {
                    this.Write(", ");
                }
            }

            this.WriteLine(") => ");

            this.Visit(node.Body);

            return node;
        }