Einzelnen Beitrag anzeigen

WladiD

Registriert seit: 27. Jan 2006
Ort: Celle
135 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Funktion, die beliebigen Typ zuweist und als Bool auswertet

  Alt 2. Mär 2011, 09:41
Wie wäre es mit einer generischen Funktion?! Dann musst du halt die Klasse immer mit angeben ...
Wieso bin ich da eigentlich nicht gleich draufgekommen

Hab mal auf die schnelle das hier geschrieben:

Delphi-Quellcode:
unit SetCheck;

interface

type
   TSetCheck = record
      class function O<T:class>(var Target:T; const Value:T):Boolean; static; inline; // O = Object
      class function I<T:IInterface>(var Target:T; const Value:T):Boolean; static; inline; // I = Interface
   end;

implementation

class function TSetCheck.I<T>(var Target:T; const Value:T):Boolean;
begin
   Target:=Value;
   Result:=Assigned(Target);
end;

class function TSetCheck.O<T>(var Target:T; const Value:T):Boolean;
begin
   Target:=Value;
   Result:=Assigned(Target);
end;

end.
Und schwups funktioniert soetwas hier:

Delphi-Quellcode:
function TMainForm.CreateFormConfig(XMLConfig:TXMLConfig):IXMLDOMNode;
begin
   if not TSetCheck.I<IXMLDOMNode>(Result, inherited CreateFormConfig(XMLConfig)) then
      Exit;
...
end;
SUPER. Danke für den Schups!

Jetzt stellt sich nur die Frage: Ist der Compiler smart enough, um generische Funktionen inline einzubinden?

Anders macht es ja kein Sinn, denn ich will zwar den Komfort des Ganzen, aber keine unnötigen Sprünge.

Was meint ihr?
Waldemar Derr
  Mit Zitat antworten Zitat