Обработка методов, возвращающих молча: перегрузки, параметры или что-то еще?C#

Место общения программистов C#
Anonymous
Обработка методов, возвращающих молча: перегрузки, параметры или что-то еще?

Сообщение Anonymous »

Время от времени я встречаю в нашей базе кода такие методы:

Код: Выделить всё

public void Search(SearchModel searchModel)
{
if (SearchModelEqualityComparer.Equals(_lastSearchModel, searchModel)) // this could also be validation checks
return;

ForceSearch(searchModel);
}

public void ForceSearch(SearchModel searchModel) => ...
Но я также вижу это:

Код: Выделить всё

public void Search(SearchModel searchModel, bool checkIfChanged = true)
{
if (checkIfChanged && SearchModelEqualityComparer.Equals(_lastSearchModel, searchModel))
return;

...
}
В этих случаях нам необходимо предоставить оба варианта, потому что иногда мы действительно хотим вызвать ForceSearch. Но учитывая комментарии XML, соглашения об именах, привязку событий и все остальное, что следует учитывать, я хотел спросить: какой вариант лучше и почему?
Обратите внимание, что это не совсем то же самое, что перегрузки и необязательные параметры из-за разницы в именовании методов.
Я знаю, что это глупо, но это съедает меня изнутри, большое спасибо.

Подробнее здесь: https://stackoverflow.com/questions/799 ... s-or-other

Вернуться в «C#»