Даже изменение полей в свойствах является потенциально разрушительным изменением.Если вам нужно сохранить совместимость с скомпилированными двоичными файлами, которые вы не можете контролировать, я даже не рекомендую вносить first change.
В StyleCop следует помнить, чтоупорно настаивает на том, что вы следовать кодирования Рекомендации , которые не являются на самом деле то же самое, как правила.Оба руководства, с которыми вы столкнулись, вполне разумны.Я всегда следую за ними при написании нового кода.Тебе тоже следует.Однако, если, как и в вашем случае, совместимость важнее, возможно, допустимо игнорировать настойчивость StyleCop.
Даже если вы решите текущее предупреждение, следующая вещь, которую он, вероятно, поразит вас (или, если это не так, он должен , и FxCop определенно это улавливает) в том, что массивы никогда не должны отображаться как часть интерфейса (то есть, помеченные protected
или public
).Вместо этого вы должны выставить что-то вроде IEnumerable<T>
, IList<T>
или ReadOnlyCollection<T>
.
Прополоскать, вспенить, повторить.Вы просто гоняетесь за хвостом, если не можете реально изменить код.
И просто чтобы посмотреть, смогу ли я довести вас до безумия, я отмечу, что FxCop бросил бы приступ, если бы это былообнаружьте, что дочерние классы явно вызывали член в своем родительском классе, если они не переопределяют реализацию этого члена сами.Так что, в основном, base.coefficients
- это нет-нет.Если вы будете следовать всем инструкциям, это облегчит их соблюдение.Логичное следствие, конечно, заключается в том, что если вы не не следуете всем рекомендациям, это делает их выполнение гораздо более сложным.