ForceGenerate (メソッド・キーワード)
使用法
メソッド (メソッド・ジェネレータ) をすべてのサブクラスでコンパイルする必要があることを指定するには、以下の構文を使用します。
Method name(formal_spec) As returnclass [ CodeMode = ObjectGenerator, ForceGenerate ]
{ //implementation }
そのように指定しない場合は、このキーワードを省略し、キーワードの直前に単語 Not を指定します。
詳細
メソッド・ジェネレータのメソッドの場合はそのメソッドをすべてのサブクラスでコンパイルする必要があることを示します。このキーワードは、各サブクラスに必ずそのバージョンのメソッドが含まれるようにする必要があるときに役立ちます。InterSystems IRIS は、生成されるコードの外見がスーパークラスで生成されるコードと同じと見なした場合には、サブクラス内のメソッドをリコンパイルしません。このロジックでは、両方のクラスのインクルード・ファイルが同じかどうかについては考慮しません。このメソッドがインクルード・ファイルで定義されたマクロを使用する場合、それとは別のインクルード・ファイルをサブクラスで使用するとしても、InterSystems IRIS はサブクラスのメソッドをリコンパイルしません。このようなシナリオでは、メソッド・ジェネレータのために ForceGenerate を指定します。
既定値
このキーワードを省略すると、メソッドはすべてのサブクラスでコンパイルされなくなります。
関連項目
-
このドキュメントの “メソッド定義”
-
CodeMode キーワード
-
"クラスの定義と使用" の “メソッドの定義と呼び出し”
-
"クラスの定義と使用" の “メソッド・ジェネレータとトリガ・ジェネレータの定義”
-
"クラスの定義と使用" の “コンパイラ・キーワードの概要”