delphi - 主函数的参数和变量在子程序中使用是否安全?

标签 delphi 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?

关于delphi - 主函数的参数和变量在子程序中使用是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38482499/

相关文章:

delphi - 绘图(图表)组件的建议?

delphi - ForceDirectories 返回 False

algorithm - QuickSort 的优化或错误实现

android - Android 上的 Delphi 阿拉伯字符显示问题

java - 子例程返回字符串参数的所有大写字母,只能是首字母

perl - 调用 perl 匿名子程序,其引用保存在散列中

string - 在 Perl 中将所有参数作为字符串传递给子例程

delphi - 从delphi.exe提取项目文件

interface - fortran中的INTERFACE block 和MODULE过程之间有什么区别?

batch-file - 如何在 DOSBox 的子程序中创建变量?