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