У меня есть метод объекта, который похож на factory. Вы даете ему тип, он создает экземпляр и делает несколько других вещей. Элегантный способ сделать это (на мой взгляд) выглядит следующим образом:
public T MagicMethod<T>() where T: SomeBaseClass
{
// Magic goes here
}
Но это расстраивает FxCop, который говорит, что это плохой стиль. Я получаю предупреждение о том, что "CA1004: общие методы должны предоставлять параметр типа". Что-то не в том, чтобы использовать выводы и прочее. Итак, единственный способ, которым я могу думать, это что-то вроде этого:
public SomeBaseClass MagicMethod(Type T)
{
// Same magic goes here
}
Я считаю, что это уступает первому методу для многих учетных записей, но правило стиля... В статье MSDN о предупреждении даже говорится, что нет причин для его подавления.
Правильно ли я делаю это, подавляя это предупреждение?