private bool IsValidInvocation(IParameter[] parameters, ExpressionCollection args, int count) { for (int i = 0; i < count; ++i) { IParameter parameter = parameters[i]; IType parameterType = parameter.Type; int argumentScore = CalculateArgumentScore(parameter, parameterType, args[i]); if (argumentScore < 0) return false; } return true; }