public static void CopyOutAndRefParameters(TypeReference[] dereferencedArguments, LocalReference invocation, MethodInfo method, MethodEmitter emitter) { var parameters = method.GetParameters(); if (!ArgumentsUtil.IsAnyByRef(parameters)) { return; //saving the need to create locals if there is no need } var arguments = StoreInvocationArgumentsInLocal(emitter, invocation); for (int i = 0; i < parameters.Length; i++) { if (!parameters[i].ParameterType.IsByRef) { continue; } emitter.CodeBuilder.AddStatement(AssignArgument(dereferencedArguments, i, arguments)); } }