Einzelnen Beitrag anzeigen

Elrond

Registriert seit: 29. Sep 2014
71 Beiträge
 
#1

Delphi 11 versteht mein generic nicht mehr

  Alt 18. Okt 2021, 15:55
Delphi-Version: 11 Alexandria
Hallo Zusammen,

ich habe heute neben meiner Delphi Version 10.3 die neue 11 installiert und wollte schauen ob mein Projekt durchcompliert.

Es hat sich scheinbar im Umgang mit generics etwas geändert, weswegen er bei meiner generische Implementierung eines Singleton scheitert und mir den Fehler liefert:

E2010 Inkompatible Typen: 'TObject' und 'T'

Hier der vollständige kurze Quelltext:

Delphi-Quellcode:
type
  IOrModel = interface
    ['{2901ade0-0373-491a-8624-1ece11c1ddbd}']
  end;

  TModel<T: IOrModel, constructor> = class abstract
  private
    class var Model: T;

  public
    class function GetInstance: T;
    class procedure ReleaseInstance();
  end;

implementation

class function TModel<T>.GetInstance: T;
begin
  if not Assigned(Model) then
    Model := T.Create;

  Result := Model;
end;

class procedure TModel<T>.ReleaseInstance;
begin
  if Assigned(Self.Model) then
  begin
   FreeAndNil(Self.Model);//für hier kommt die Fehlermeldung
  end;

end;

end.
Hat jemand eine Idee was sich geändert hat? Konnte in den Updatenotes nichts finden.

Viele Grüße
Alexander
  Mit Zitat antworten Zitat