主函数的参数和变量可以在子程序中使用吗?这样做有什么问题吗?
procedure TForm1.FormCreate(Sender: TObject);
var
Test : string;
procedure SubFnTest();
begin
ShowMessage(Self.Name);
ShowMessage(TForm1(Sender).Name);
ShowMessage(Test);
end;
begin
Test := 'hello';
SubFnTest();
end;
我现在在Delphi-2007上测试这段代码,看起来没有问题,但是我对这种做法造成的麻烦有一些模糊的内存(我不太记得当时是哪个问题)
最佳答案
你的代码绝对没问题。嵌套函数可以引用外部作用域的变量。
我怀疑您记住的是不允许使用嵌套函数作为过程值。例如,请参阅此处对该主题的讨论:Why cannot take address to a nested local function in 64 bit Delphi?
关于delphi - 主函数的参数和变量在子程序中使用是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38482499/