Die tiefe Compiler-Magic ist nicht so mein Ding, aber man sollte vielleicht erwähnen dass im Fall von z.B.
Delphi-Quellcode:
uses
System.SysUtils;
type
TMyObject = class
procedure handleStuff();
end;
procedure TMyObject.handleStuff();
begin
//
end;
var
myObject: TMyObject;
someEvent: TProc; // TProc = "reference to procedure()"
begin
myObject := TMyObject.Create();
someEvent := myObject.handleStuff;
end.
die Zeile
someEvent := myObject.handleStuff;
vom Compiler übersetzt wird in
Delphi-Quellcode:
someEvent :=
procedure()
begin
myObject.handleStuff();
end;
Das kann wichtig werden wenn man z.B. Variablen vom Typ "reference to procedure()" oder ähnlich miteinander vergleichen will - So "inline" geschrieben ist zwar komfortabel, aber eine Gleichheitsprüfung würde immer fehlschlagen.