Aktueller Stand:
A = Basisklasse
B = Mehrere von A abgeleitete Klassen
In B sind jedoch noch Funktionalitäten enthalten welche bei allen gleich sind.
Das Problem basiert auf den Membern:
B1 hat mehrere Listen welche von den Typen immer folgendermaßen aufgebaut sind IList<KeyValuePair<string, int>>
B2 hat mehrere Listen welche von den Typen immer folgendermaßen aufgebaut sind IList<KeyValuePair<string, bool>>
B3 hat mehrere Listen welche von den Typen immer folgendermaßen aufgebaut sind IList<KeyValuePair<string, xxx>>
...
auf diesen werden teilweise die gleichen Opterationen ausgeführt. Den Teil welcher gleich ist würde ich gerne nach A auslagern.
Gibt es für das Auslagern eine elegante Lösung?
Wenn ich den typ object nehme (anstatt int, bool usw) wäre jederzeit ein casting + Un/Boxing notwendig und die Typsicherheit geht verloren.
Die Basisklasse müßte also generisch auf den Listen arbeiten können während die abgeleitete Klasse trotzdem direkt darauf zugreifen kann.