E2568 Neue Instanz kann ohne CONSTRUCTOR-Einschränkung in der Typparameterdeklaration nicht erstellt werden (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Dieser Fehler tritt auf, wenn der generische Typ von einer Klasse abgeleitet wird, die über einen impliziten Konstruktor verfügt, und die Standardkonstruktorklausel nicht angegeben wird.


 program E2568;
 
 {$APPTYPE CONSOLE}
 
 uses
   SysUtils;
 
 type
 TMyClass1 = class
 
 end;
 TMyClass2<T: TMyClass1> = class // Fix: replace < T : TmyClass1> with <T : TMyClass1, constructor> 
 public
 procedure Add;
 end;
 
 procedure TMyClass2<T>.Add;
 begin
 T.Create(nil); //E2568
 end;
 
 begin
   Writeln('E2568 Cannot create new instance without CONSTRUCTOR constraint in type parameter declaration');
 end.