编写我的Delphi Prism程序足以在没有编译错误的情况下编译和运行Window和Linux(单声道),我发现我的构造函数和加载事件的触发顺序与我预期的不同。我想,文件按照它们在项目文件中列出的顺序执行,就像在Delphi .dpr文件中一样。说到.dpr文件,有没有类似的Delphi Prism文件,我没有考虑过。我查看了program.pas文件和属性。我没有看到任何东西给我一个提示或线索。
如何确保项目文件在Delphi Prism中以正确的顺序执行?
答案 0 :(得分:2)
Delphi Prism按照项目中定义文件的顺序进行编译。但是,由于没有初始化部分,因此不应该有任何取决于文件顺序的内容。
至于你的其他问题。 Program.pas默认包含入口点,它是一个名为“Main”的方法,您可以将其视为主要的开始/结束。
答案 1 :(得分:1)
.NET不知道您的类在程序文件中列出的顺序。它只是看到了类。
在正常情况下,你可以想到这条规则:
静态(类)构造函数在第一次在此类上调用实例.ctor或其他静态(类)方法之前执行
虽然每次都不是这样(他们可以之前被调用,但不能在之后调用),这是一个很好的近似值,大部分时间都可以使用。
因此,为了确保静态类初始化的某个顺序,我依赖于以下内容: 我有一个静态类,它有一个Initialize()方法。这个方法是我在程序的Main()方法中调用的第一个方法。在这个方法中,我按所需顺序在其他类上调用Initialize-Methods。这可以确保执行初始化代码。