Пример #1
0
        /// <inheritdoc />
        protected override bool HandleDynamic(CodeMultidimensionalArrayCreateExpression obj, Context ctx)
        {
            ctx.Writer.Write("New ");
            ctx.HandlerProvider.TypeReferenceHandler.Handle(obj.CreateType, ctx);
            ctx.Writer.Write("(");
            if (obj.SizeExpressions.Count > 0)
            {
                GeneralUtils.HandleCollectionCommaSeparated(
                    obj.SizeExpressions
                    .Select(exp => new CodeBinaryOperatorExpressionMore(
                                exp,
                                CodeBinaryOperatorTypeMore.Subtract,
                                new CodePrimitiveExpression(1))),
                    ctx.HandlerProvider.ExpressionHandler,
                    ctx);
            }
            else if (obj.Rank > 0)
            {
                for (int i = 1; i < obj.Rank; i++)
                {
                    ctx.Writer.Write(",");
                }
            }
            ctx.Writer.Write(") ");
            if (obj.InitializerExpression != null)
            {
                ctx.HandlerProvider.ExpressionHandler.Handle(obj.InitializerExpression, ctx);
            }
            else
            {
                ctx.Writer.Write("{}");
            }

            return(true);
        }
Пример #2
0
 /// <inheritdoc/>
 protected override bool HandleDynamic(CodeMultidimensionalArrayCreateExpression obj, Context ctx)
 {
     ctx.Writer.Write("new ");
     ctx.HandlerProvider.TypeReferenceHandler.Handle(obj.CreateType, ctx);
     ctx.Writer.Write("[");
     if (obj.SizeExpressions.Count > 0)
     {
         GeneralUtils.HandleCollectionCommaSeparated(obj.SizeExpressions, ctx.HandlerProvider.ExpressionHandler, ctx);
     }
     else if (obj.Rank > 0)
     {
         for (int i = 1; i < obj.Rank; i++)
         {
             ctx.Writer.Write(",");
         }
     }
     ctx.Writer.Write("]");
     if (obj.InitializerExpression != null)
     {
         ctx.Writer.Write(" ");
         ctx.HandlerProvider.ExpressionHandler.Handle(obj.InitializerExpression, ctx);
     }
     return(true);
 }
 /// <inheritdoc cref="ICodeObjectHandler{T}.Handle"/>
 protected abstract bool HandleDynamic(CodeMultidimensionalArrayCreateExpression obj, Context ctx);