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?