コード例 #1
0
        protected internal override ExpressionSlim VisitNewArray(NewArrayExpressionSlim node)
        {
            Append(node.NodeType);
            Append('(');
            Append(node.ElementType);
            Append(", ");
            Visit(", ", node.Expressions);
            Append(')');

            return(node);
        }
コード例 #2
0
        /// <summary>
        /// Visits a new array expression slim tree node, produces a new array expression.
        /// </summary>
        /// <param name="node">Node to visit.</param>
        /// <param name="expressions">Operand expressions.</param>
        /// <returns>The new array expression represented by the expression slim node.</returns>
        protected override Expression MakeNewArray(NewArrayExpressionSlim node, ReadOnlyCollection <Expression> expressions)
        {
            var elementType = MakeType(node.ElementType);

            if (node.NodeType == ExpressionType.NewArrayBounds)
            {
                return(_factory.NewArrayBounds(elementType, expressions));
            }
            else
            {
                Debug.Assert(node.NodeType == ExpressionType.NewArrayInit);
                return(_factory.NewArrayInit(elementType, expressions));
            }
        }
コード例 #3
0
#pragma warning restore CA1711
#pragma warning restore IDE0079

        /// <summary>
        /// Visits an array creation expression tree node.
        /// </summary>
        /// <param name="node">Node to visit.</param>
        /// <returns>Result of visiting the node.</returns>
        protected internal virtual ExpressionSlim VisitNewArray(NewArrayExpressionSlim node)
        {
            return(node.Update(Visit(node.Expressions)));
        }