在查看一些代码时,我注意到有机会将其更改为使用泛型。(混淆的)代码如下所示:
public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets)
{
var someProperty = typeOfTarget.GetProperty(possibleTargets[0]);
...
}
该代码可以用泛型代替,如下所示:
public void DoAllTheThings<T>(object[] possibleTargets[0])
{
var someProperty = type(T).getProperty(possibleTargets[0]);
...
}
在研究这种方法的优点和缺点时,我发现了一个称为泛滥的术语。看到:
- 保护入门者(开发人员)不受泛型影响
- https://stackoverflow.com/questions/28203199/is-this-an-abuse-of-generics
- https://codereview.stackexchange.com/q/60695
我的问题分为两个部分:
- 转向这样的泛型有什么好处?(性能?可读性?)
- 什么是泛型滥用?并通过一个通用的有一个类型参数的每一次滥用?