Boo.Lang.Runtime.MethodDispatcherEmitter.EmitVarArgsMethodArguments C# (CSharp) Метод

EmitVarArgsMethodArguments() приватный Метод

private EmitVarArgsMethodArguments ( ) : void
Результат void
        private void EmitVarArgsMethodArguments()
        {
            int varArgCount = _argumentTypes.Length - MinimumArgumentCount();
            Type varArgType = _found.VarArgsParameterType;
            OpCode storeOpCode = GetStoreElementOpCode(varArgType);
            _il.Emit(OpCodes.Ldc_I4, varArgCount);
            _il.Emit(OpCodes.Newarr, varArgType);
            for (int i = 0; i < varArgCount; ++i)
            {
                Dup();
                _il.Emit(OpCodes.Ldc_I4, i);
                if (IsStobj(storeOpCode))
                {
                    _il.Emit(OpCodes.Ldelema, varArgType);
                    EmitMethodArgument(MinimumArgumentCount() + i, varArgType);
                    _il.Emit(storeOpCode, varArgType);
                }
                else
                {
                    EmitMethodArgument(MinimumArgumentCount() + i, varArgType);
                    _il.Emit(storeOpCode);
                }
            }
        }