En passant en revue du code, j'ai remarqué qu'il était possible de le changer pour qu'il utilise des génériques. Le code (obscurci) ressemble à:
public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets)
{
var someProperty = typeOfTarget.GetProperty(possibleTargets[0]);
...
}
Ce code pourrait être remplacé par des génériques, comme ceci:
public void DoAllTheThings<T>(object[] possibleTargets[0])
{
var someProperty = type(T).getProperty(possibleTargets[0]);
...
}
En recherchant les avantages et les inconvénients de cette approche, j'ai trouvé un terme appelé abus générique . Voir:
- Protéger les non-initiés (développeurs) des génériques
- https://stackoverflow.com/questions/28203199/is-this-an-abuse-of-generics
- https://codereview.stackexchange.com/q/60695
Ma question est en deux parties:
- Y at-il des avantages à passer à des génériques comme celui-ci? (Performance? Lisibilité?)
- Qu'est-ce que l'abus de génériques? Et l'utilisation d'un générique à chaque fois qu'il y a un paramètre de type est-elle un abus ?