最近のアクセス:
受け取るパラメーターのタイプの定義 (in、out、inout)

parm ルールで宣言される各パラメーターを次のパラメーターとして定義できます。
  • 入力パラメーター (in 演算子を指定)
  • 出力パラメーター (out 演算子を指定)
  • 入力および出力パラメーター (inout 演算子を指定)
演算子を指定しない場合は、次の状況によって決まります。
  • オブジェクトが Call メソッドで呼び出された場合のパラメーターの動作は inout になります。
  • オブジェクトが Udp メソッドで呼び出され、最後のパラメーターである場合は、out パラメーターになります。

構文

parm( [ out:&var1, in:&var2, &var3, inout:&var4 ] );
入力値の説明:
&var1、&var2、&var3、&var4:
    呼び先オブジェクトに定義されたローカル変数または一時変数です。


次のルールがプロシージャーで宣言されています。
parm(out:&var1, in:&var2, &var3, inout:&var4);
この場合、次のようになります:
&var1: out パラメーターです。
&var2: in パラメーターです。
&var3: inout パラメーターです。
&var4: inout パラメーターです。
 

演算子を定義するメリット

各パラメーターの動作を明示的に宣言すると、次のようなメリットがあります。
1. インターフェースの意味をより明確に指定できます。各パラメーターの動作は次のとおりです。
  • inout: パラメーターに値が代入され、呼び先オブジェクトの実行後、結果の値が呼び元オブジェクトに返されます。
  • in: パラメーターに値が代入され、呼び先オブジェクトの実行後、結果の値が呼び元オブジェクトに返されます。(*)
  • out: パラメーターに値が代入されず、呼び先オブジェクトの実行後、結果の値が呼び元オブジェクトに返されます。
2. 生成言語に依存しません。つまり、演算子を明示的に指定すると、異なる生成言語を使用してアプリケーションが生成されても、対応する生成言語の既定の動作に基づいてパラメーターの動作が変わることはありません。
3. 入力変数も読み取り専用と見なされます。レイアウトでは入力変数が読み取り専用になります。コード内で何らかの方法でそれらを変更しようとすると、分析時に SPC0022 警告が表示されます。

注意事項

この指定子では、in として定義されているパラメーターにプログラムの割り当て値 (ルール、ソース、イベントにおける値) を指定することはできません。
変数のタイプが複雑な場合 (ビジネスコンポーネント、構造化データタイプ、外部オブジェクトなど) は、パラメーターが参照渡しされます。




サブページ
Created: 14/09/18 03:44 by Admin Last update: 22/03/14 00:53 by Admin
カテゴリ
Powered by GXwiki 3.0