При использовании анализа кода (или fxCop) с дополнительными параметрами C# можно получить предупреждение CA1026. Короткий reason1 для этого не является suppling все параметры со значением по умолчанию.
Объявление ниже справедливо генерирует это предупреждение
public Color GetColor(bool red, bool blue = true, bool green = true)
Однако существует ситуация, где Вы не могли предоставить все параметры значение по умолчанию, и это - дополнительные методы. Таким образом, объявление ниже генерирует предупреждение из-за первого параметра:
public static bool ValidateRules(this string s, Rules rules = Rules.Default)
Компилятор не позволит Вам указать значение по умолчанию на этом параметре, таким образом, эти только два решения будут к:
Это не предупреждение за отсутствие значений по умолчанию для всех параметров - это предупреждение за использование необязательных параметров вообще.
Лично я бы отключил это конкретное предупреждение. Я считаю, что необязательные параметры можно использовать с осторожностью. Вы должны хорошо подумать о них, особенно в плане версионирования значения параметра по умолчанию и в плане языков, которые их не поддерживают (включая C# до версии 4), но во многих средах их недостатки действительно не являются проблемой - и в итоге вы можете получить гораздо более простой код, чем при указании перегрузок повсюду.
Вы можете подавить предупреждение в каждом конкретном случае.