我有一个类似于工厂的对象的方法。你给它一个类型,它创建一个实例并做一些其他的事情。一种优雅的方式(在我看来)是这样的:
public T MagicMethod<T>() where T: SomeBaseClass
{
// Magic goes here
}
但这让 FxCop 感到不安,他说这是一种糟糕的风格 - 我收到“CA1004:通用方法应提供类型参数”警告。关于不使用推理和东西的东西。所以,我能想到的唯一其他方法是这样的:
public SomeBaseClass MagicMethod(Type T)
{
// Same magic goes here
}
我相信这在许多帐户上不如第一种方法,但是样式规则...有关警告的MSDN文章甚至说没有理由压制它。
毕竟,我通过压制这个警告做得对吗?