Ich will in einer generischen Klasse das Result festlegen, obwohl ich den Type gar nicht kenne.
Ich weis nicht ob das so verständlich beschrieben ist, daher mal ein Beispiel:
Delphi-Quellcode:
type
TMyGenType<TSonstwas> = class
private
protected
Function MyDefaultValue:TSonstwas;virtual;
public
end;
Function TMyGenType<TSonstwas>.MyDefaultValue:TSonstwas;
begin
if TSonstwas is integer then
integer(Result) := 42;
if TSonstwas is String then
string(Result) := '42';
end;
In der Funktion MyDefaultValue möchte ich vorab für einige Typen das Result festlegen. Ein Typecasting und der "is"-Parameter funktionieren natürlich nicht.
Ich habe zwar mittlerweile herausgefunden, wie man mit Hilfe von TValue aus der
Rtti-
Unit den Typen herausfinden kann. Somit kann ich das "is" schon mal ersetzen. Aber dem Result kann ich nichts zuweisen. Ich weiss zumindest nicht wie. Jemand eine Idee?