Okay, ich muss die Frage nochmal neu stellen wie mir scheint, hab mich ungenau ausgedrückt.
Ich will NICHT eine Liste von Interfaces verwalten.
Ziel ist es eine Liste von Klassenobjekten zu verwalten, die ein bestimmtes Interface verwenden müssen.
Ich will das:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| type IMyInterface = interface TestFunc: Integer; end;
TMyInterfacedObj = class(TInterfacedPersistent, IMyInterface) public TestFunc: Integer; end;
TMyList = TObjectList<TMyInterfacedObj> end; |
Nur das hat den Nachteil, dass ich selbst gezwungen bin TestFunc von TMyInterfacedObj zu implementieren.
Das will ich aber garnicht.
Ich hol mal etwas weiter aus, damit der Hintergrund verständlich wird.
Wenn ich eine abstrakte Klasse definiere und ein anderer Entwickler diese ableitet und vergisst eine Methode zu implementieren,
fliegt das Programm zur Laufzeit auf die Nase. Find ich nicht prickelnd. Wenn ich Interfaces definiere werden die Entwickler gezwungen die
vorgesehenen Methoden zu Implementieren.
// Edit: Hat sich erledigt. Ich hab mal nachgesehen, ob in C# soetwas möglich ist, aber ich werde immer gezwungen sein, das Interface zu implementieren, also
bleibt nur der Ansatz über abstrakte Klassen.
Den Ansatz mit TList<IMyInterface> klappt im Übrigen. Ist ist nicht exakt das was ich wollte, aber es löst das Problem auch.
Danke für den Tipp.
Stellen Sie sich bitte Zirkusmusik vor.