Hi,
Habe gerade ein kleines Problem...
EDIT: Und die Lösung lautet:
Result := Default(T);
=====
Delphi-Quellcode:
IAssignable = interface(IUnknown)
procedure Assign(AObject: TObject);
end;
TMeineKlasse<T: Class, Constructor, IAssignable> = class;
Funktioniert prinzipiell wunderbar. Aber ich habe dann folgendes in meinem Code:
Delphi-Quellcode:
function TMeineKlasse<T>.GetT: T;
begin
if FIndex = -1 then
Result := nil
else
Result := FData[FIndex];
end;
Das funktioniert allerdings nur wenn ich IAssignable aus den Einschränkungen entferne...
So funktioniert es:
TMeineKlasse<T: Class, Constructor> = class;
Und so
TMeineKlasse<T: Class, Constructor, IAssignable> = class;
bekomme ich die Fehlermeldung
Zitat:
[DCC Fehler] Inkompatible Typen: 'T' und 'Pointer'
in der Zeile
Result := nil
Das finde ich ziemlich...blöd! Wieso funktioniert das denn jetzt nicht mehr? -.-
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."