public long getNumberOfRequiredParameters()
 {
     return(ReflectionUtils
            .ResolvePhpParameters(_routine.Methods)
            .TakeWhile(p => p.HasDefaultValue == false && p.GetCustomAttribute <DefaultValueAttribute>() == null && p.GetCustomAttribute <ParamArrayAttribute>() == null)
            .Count());
 }
        public long getNumberOfParameters()
        {
            var parameters = ReflectionUtils.ResolvePhpParameters(_routine.Methods);
            int count      = 0;

            for (; count < parameters.Count; count++)
            {
                var p = parameters[count];

                if (p.GetCustomAttribute <ParamArrayAttribute>() != null)
                {
                    // variadic is the last one
                    return(count + 1);
                }
            }

            return(count);
        }
        public long getNumberOfRequiredParameters()
        {
            var parameters = ReflectionUtils.ResolvePhpParameters(_routine.Methods);
            int count      = 0;

            for (; count < parameters.Count; count++)
            {
                var p = parameters[count];
                if (p.HasDefaultValue || p.GetCustomAttribute <DefaultValueAttribute>() != null) // is optional argument
                {
                    break;
                }

                if (p.GetCustomAttribute <ParamArrayAttribute>() != null) // is optional, variadic
                {
                    break;
                }
            }

            return(count);
        }
 public long getNumberOfParameters()
 {
     return(ReflectionUtils.ResolvePhpParameters(_routine.Methods).Count);
 }