8
我不明白爲什麼以下的小控制檯應用程序不會編譯:使用Delphi,無法將anonymus類型用作記錄類型?
program Project1;
type
TProc = reference to procedure;
TMyRec = record
Proc: TProc;
end;
var
myProc: TProc;
myRec: TMyRec;
begin
myProc := procedure begin writeln; end;
myProc; // compiles fine
myRec.Proc := procedure begin writeln; end;
myRec.Proc; //E2014 Statement exptected, but expression of type 'TProc' found
end.
簡單的舊pascal程序可以不帶圓括號的調用,我猜一個Procedure-ref是不同的。 –
謝謝,我沒想到會這樣。這個要求的原因是什麼?這與myProc有什麼不同?線? –
@WarrenP:IIRC這也是類方法引用的情況,至少當你將它們作爲參數傳遞給其他函數時... –