Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

CodeMode

このメソッドの実装方法を指定します。

使用法

メソッドの実装方法を指定するには、以下の構文を使用します。

Method name(formal_spec) As returnclass [ CodeMode=codemode ] 
{
   //implementation
}

codemode は以下のいずれかになります。

  • call — このメソッドは、ルーチン呼び出しのエイリアスです (従来のコードを囲むために使用します)。

  • code (既定) — このメソッドは、コード行として実装されます。

  • expression — このメソッドは、式として実装されます。

  • objectgenerator — このメソッドは、メソッド・ジェネレータです。

Note:

このキーワードには、generator という値があります。これは、以前に使用されていたキーワードで、従来の非オブジェクト・ベースのメソッド・ジェネレータを使う必要があることを示しています。この値は、従来のバージョンとの互換性を保つ目的にのみ残されています。新しいアプリケーションでは objectgenerator を使用する必要があります。

詳細

このキーワードは、任意のメソッドの実装方法を指定します。

通常、メソッドは 1 行以上の行のコードを使用して実装します。これは、CodeMode の既定値の code で指定されます。この場合、メソッド実装は 1 行以上のコードになります。

一部の単純なメソッドは、expression メソッドとして実装できます。クラス・コンパイラは、このメソッドに対する呼び出しを、式を含むインライン・コードと置換することもあります。この場合、メソッド実装は (no Quit または Return 文とあわせて) 単純な式となります。

呼び出しメソッドは、ルーチンのラッパです。この場合、メソッド実装はルーチン名とタグ名になります。

メソッド・ジェネレータは、クラスのコンパイル時にクラス・コンパイラによって実行されるプログラムです。これは、任意のメソッドに対する実際の実装を生成します。この場合、メソッド実装はメソッド・ジェネレータ用のコードとなります。"Caché オブジェクトの使用法" の “メソッド・ジェネレータとトリガ・ジェネレータの定義” を参照してください。

既定値

CodeMode キーワードの既定値は、code です。

/// An expression method
Method Double(val As %Integer) As %Integer [ CodeMode = expression ] 
{
  val * 2
}

/// A Method generator
Method GetClassName() As %String [ CodeMode = objectgenerator ] 
{
   Do %code.WriteLine(" Quit """ _ %class.Name _ """")
   Quit $$$OK
}

関連項目

FeedbackOpens in a new tab