Einzelnen Beitrag anzeigen

Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#1

Result im generischen Objekt vorbelegen.

  Alt 5. Mär 2016, 22:39
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?
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat