Durante la revisione di alcuni codici, ho notato l'opportunità di cambiarlo per usare generici. Il codice (offuscato) è simile a:
public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets)
{
var someProperty = typeOfTarget.GetProperty(possibleTargets[0]);
...
}
Questo codice potrebbe essere sostituito da generici, in questo modo:
public void DoAllTheThings<T>(object[] possibleTargets[0])
{
var someProperty = type(T).getProperty(possibleTargets[0]);
...
}
Nella ricerca dei vantaggi e delle carenze di questo approccio ho trovato un termine chiamato abuso generico . Vedere:
- Proteggere i non iniziati (sviluppatore) dai generici
- https://stackoverflow.com/questions/28203199/is-this-an-abuse-of-generics
- https://codereview.stackexchange.com/q/60695
La mia domanda si presenta in due parti:
- Ci sono dei vantaggi nel passare a farmaci generici come questo? (Prestazioni? Leggibilità?)
- Che cos'è l'abuso di Generics? E sta usando un generico ogni volta che c'è un parametro di tipo un abuso ?