Microsoft.CSharp.RuntimeBinder.Semantics.ExprFactory.CreateArrayInit C# (CSharp) Method

CreateArrayInit() public method

public CreateArrayInit ( EXPRFLAG nFlags, CType pType, EXPR pOptionalArguments, EXPR pOptionalArgumentDimensions, int pDimSizes ) : Microsoft.CSharp.RuntimeBinder.Semantics.EXPRARRINIT
nFlags EXPRFLAG
pType CType
pOptionalArguments EXPR
pOptionalArgumentDimensions EXPR
pDimSizes int
return Microsoft.CSharp.RuntimeBinder.Semantics.EXPRARRINIT
        public EXPRARRINIT CreateArrayInit(EXPRFLAG nFlags, CType pType, EXPR pOptionalArguments, EXPR pOptionalArgumentDimensions, int[] pDimSizes)
        {
            Debug.Assert(0 == (nFlags &
                       ~(EXPRFLAG.EXF_MASK_ANY | EXPRFLAG.EXF_ARRAYCONST | EXPRFLAG.EXF_ARRAYALLCONST)));
            EXPRARRINIT rval = new EXPRARRINIT();
            rval.kind = ExpressionKind.EK_ARRINIT;
            rval.type = pType;
            rval.SetOptionalArguments(pOptionalArguments);
            rval.SetOptionalArgumentDimensions(pOptionalArgumentDimensions);
            rval.dimSizes = pDimSizes;
            rval.dimSize = pDimSizes != null ? pDimSizes.Length : 0;
            Debug.Assert(rval != null);
            return (rval);
        }

Usage Example

示例#1
0
        private static ExprArrayInit GenerateParamsArray(Expr args, PredefinedType pt)
        {
            int           parameterCount         = ExpressionIterator.Count(args);
            AggregateType paramsArrayElementType = SymbolLoader.GetPredefindType(pt);
            ArrayType     paramsArrayType        = TypeManager.GetArray(paramsArrayElementType, 1, true);
            ExprConstant  paramsArrayArg         = ExprFactory.CreateIntegerConstant(parameterCount);

            return(ExprFactory.CreateArrayInit(paramsArrayType, args, paramsArrayArg, new int[] { parameterCount }));
        }