Переглядаючи якийсь код, я помітив можливість змінити його на використання дженерики. Код (заплутаний) виглядає так:
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
Моє запитання складається з двох частин:
- Чи є якісь переваги для переходу до таких дженериків? (Продуктивність? Читання?)
- Що таке зловживання генериками? І чи використовує загальний щоразу, коли параметр типу є зловживанням ?