0

Delphi Prism プログラムを十分にコンパイルし、Windows と Linux (mono) でコンパイル エラーなしで実行できるように作成したところ、コンストラクタとロード イベントが予想とは異なる順序で起動していることに気付きました。ファイルは、Delphi .dpr ファイルのように、プロジェクト ファイルにリストされている順序で実行されると思いました。.dpr ファイルといえば、私が調べていない Delphi Prism 用の同様のファイルはありますか。program.pas ファイルとプロパティを調べました。ヒントや手がかりを与えるものは何も見当たりませんでした。

Delphi Prism でプロジェクト ファイルが正しい順序で実行されるようにするにはどうすればよいですか?

4

2 に答える 2

2

Delphi Prism は、ファイルがプロジェクトで定義されている順序でコンパイルします。ただし、初期化セクションがないため、ファイルの順序に依存するものは何もないはずです。

あなたの他の質問について。Program.pas にはデフォルトでエントリ ポイントが含まれています。これは「Main」と呼ばれるメソッドであり、これをメインの開始/終了として見ることができます。

于 2011-08-11T21:11:43.560 に答える
1

.NET は、クラスがプログラム ファイルにリストされている順序を認識しません。クラスを見るだけです。

通常の状況では、次のルールを考えることができます。

静的 (クラス) コンストラクターは、インスタンス .ctor または別の静的 (クラス) メソッドがこのクラスで初めて呼び出される直前に実行されます。

これは毎回当てはまるわけではありませんが (以前に呼び出される可能性がありますが、後で呼び出されることはありません)、これはほとんどの場合うまくいく良い近似です。

したがって、静的クラスの初期化の特定の順序を確保するために、次のことに依存しています。 Initialize() メソッドを持つ静的クラスが 1 つあります。このメソッドは、プログラムの Main() メソッドで最初に呼び出すものです。このメソッドでは、必要な順序で他のクラスの Initialize-Methods を呼び出します。これにより、初期化コードが確実に実行されます。

于 2011-08-12T07:33:08.990 に答える