System.MonoType.ReorderParamArrayArguments C# (CSharp) Method

ReorderParamArrayArguments() private method

private ReorderParamArrayArguments ( object &args, MethodBase method ) : void
args object
method System.Reflection.MethodBase
return void
		void ReorderParamArrayArguments(ref object[] args, MethodBase method)
		{
			ParameterInfo[] parameters = method.GetParameters();
			object[] newArgs = new object [parameters.Length];
			Array paramArray = Array.CreateInstance(parameters[parameters.Length - 1].ParameterType.GetElementType(), 
				args.Length - (parameters.Length - 1));
			int paramArrayCount = 0;
			for (int i = 0; i < args.Length; i++) {
				if (i < (parameters.Length - 1))
					newArgs [i] = args [i];
				else {
					paramArray.SetValue (args [i], paramArrayCount);
					paramArrayCount ++;
				}
			}
			newArgs [parameters.Length - 1] = paramArray;
			args = newArgs;
		}
	}