Ich komme nicht ganz hinterher, was letztendlich dein Ziel ist.
Du hast zwei vollkommen verschiedene Interfaces. Eine Klasse soll jetzt entweder mit IMeinInterface1 ODER IMeinInterface2 parametrisiert werden können. Typeinschränkungen sind immer UND.
Entweder es macht Sinn und du bildest ein gemeinsames Über-Interface (welches fortan die einzige Parametrisierungs-Einschränkung ist)
Delphi-Quellcode:
type
IMyBaseInterface = interface
// ?
end;
IMyInterface1 = interface(IMyBaseInterface)
// ?
end;
IMyInterface2 = interface(IMyBaseInterface)
// ?
end;
TMeineGenerischeKlasse<T: IMyBaseInterface> = class
end;
Oder es ist sicher dass es immer bei diesen beiden Interfaces bleiben wird. Dann würde ich die Klasse überhaupt nicht generisch machen sondern halt zwei verschiedene Methoden anbieten- Einmal für
IMyInterface1
und einmal für
IMyInterface2
.
Vielleicht liegt es an mir, aber ich persönlich habe immer große Schwierigkeiten mit vollkommen abstrakten Bezeichnern wie
TKlasse1 = class( TKlasse0<TKlasse> , IKlasse1 ) end;
. Kannst du vlt. ein ganz konkretes Beispiel geben? Kann ja frei erfunden sein, aber irgendwas zum "Anfassen"...