Ответ 1
Насколько я вижу, в вашем посте есть два вопроса.
Прежде всего, если вы чувствуете, что ваши методы могут быть переименованы в нечто более очевидное, это улучшит ваш код по многим аспектам (читаемость, удобство использования и т.д.), и они должны в любом случае описать как можно ближе, что они делают.
Второй, о предупреждении Resharper:
Рекурсивность с использованием перегруженных функций не требуется или приводит к предупреждению, которое вы видите.
Вероятно, вы знаете, что перегруженная функция наиболее часто используется, когда параметры функции имеют разные типы, но функция выполняет то же самое, например:
private static void Print(int i) {...}
private static void Print(bool b) {...}
Однако, если функция перегружена, и если эта перегрузка имеет тип точно такой же, как и дополнительные параметры, у вас, скорее всего, проблема с дизайном.
Основное объяснение
Если у вас есть что-то вроде этого:
private static void Print(string message) {...}
private static void Print(string message, string messageDelimiter = "===\n") {...}
Когда вы вызовете функцию Print из своего класса, поскольку обе функции будут выглядеть одинаково, когда вы их вызываете: Print("my message");
скрытый параметр с дополнительным параметром.
Таким образом, вы могли бы просто объединить их так:
private static void Print(string message, string messageDelimiter = "===\n") {...}
Более того
Вы также можете захотеть сделать что-то более умное, например, предоставить пользователю доступ к одной публичной функции, ограничивая ее с помощью необязательного параметра:
public static void Print(string message) {...} //< As you can see this one is public
private static void Print(string message, string messageDelimiter = "===\n") {...}
Даже в этом случае вы столкнетесь с той же проблемой.
IMO, хорошее эмпирическое правило - задать себе несколько вопросов:
- Имеет ли дополнительный параметр действительно смысл, где он находится?
- Действительно ли функция должна содержать одно и то же имя?
- Должен ли параметр быть необязательным?
Если вы ответите "да" всем им, это может быть "нормально" игнорировать комментарий Resharper и позволить вашему коду как есть.