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