Beim Überprüfen von Code habe ich festgestellt, dass die Möglichkeit besteht, ihn auf die Verwendung von Generika umzustellen. Der (verschleierte) Code sieht folgendermaßen aus:
public void DoAllTheThings(Type typeOfTarget, object[] possibleTargets)
{
var someProperty = typeOfTarget.GetProperty(possibleTargets[0]);
...
}
Dieser Code könnte durch Generika ersetzt werden:
public void DoAllTheThings<T>(object[] possibleTargets[0])
{
var someProperty = type(T).getProperty(possibleTargets[0]);
...
}
Bei der Untersuchung der Vor- und Nachteile dieses Ansatzes fand ich einen Begriff namens generischer Missbrauch . Sehen:
- Schutz des Uneingeweihten (Entwicklers) vor Generika
- https://stackoverflow.com/questions/28203199/is-this-an-abuse-of-generics
- https://codereview.stackexchange.com/q/60695
Meine Frage besteht aus zwei Teilen:
- Gibt es irgendwelche Vorteile, wenn Sie auf solche Generika umsteigen? (Leistung? Lesbarkeit?)
- Was ist Generika-Missbrauch? Und ist die Verwendung eines Generikums jedes Mal, wenn es einen Typparameter gibt, ein Missbrauch ?