YAMP.FunctionParameters.FunctionParameters C# (CSharp) Method

FunctionParameters() public method

Creates a new instance of the function parameter holder.
public FunctionParameters ( ParameterInfo parameterInfo, MethodInfo methodInfo ) : System
parameterInfo System.Reflection.ParameterInfo The array of parameter infos.
methodInfo System.Reflection.MethodInfo The method info (from reflection).
return System
        public FunctionParameters(ParameterInfo[] parameterInfo, MethodInfo methodInfo)
        {
            int sum = 0;
            int minArg = parameterInfo.Length;
            int maxArg = parameterInfo.Length;
            var takeMax = false;

            Length = parameterInfo.Length;
            ParameterTypes = new Type[Length];

            for (var i = 0; i < Length; i++)
            {
                var t = parameterInfo[i].ParameterType;

                for (var j = 0; j < t.Name.Length; j++)
                    sum += (int)t.Name[j];

                ParameterTypes[i] = t;
            }

            Weight = sum;
            OptionalArguments = methodInfo.GetCustomAttributes(typeof(ArgumentsAttribute), false) as ArgumentsAttribute[];

            foreach (var opt in OptionalArguments)
            {
                if (opt.MaximumArguments == int.MaxValue)
                    takeMax = true;
                else
                {
                    maxArg += opt.MaximumArguments;
                    maxArg--;
                }

                minArg--;
                minArg += opt.MinimumArguments;
            }

            MaximumArguments = takeMax ? int.MaxValue : maxArg;
            MinimumArguments = minArg;
        }
FunctionParameters