mainfunction 的参数和变量在子例程中使用是否安全?
Are mainfunction's parameters and variables safe to use inside a subroutine?
主函数的参数和变量可以在子程序中使用吗?这样做有什么问题吗?
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?
主函数的参数和变量可以在子程序中使用吗?这样做有什么问题吗?
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?