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?

With

単独のオブジェクトで一連の文を実行します。

Synopsis

With object
   statements
End With

引数

With 文には以下の引数が必要です。

object オブジェクト参照に解決される式。object は、オブジェクト参照を返す関数呼び出し、またはオブジェクト参照を含む添え字付き変数とすることができます。
statements オブジェクトで実行する単独、または複数の文

概要

With 文を使用すると、指定したオブジェクトで、オブジェクト名を再定義することなく、一連の文を実行できます。例えば、単独のオブジェクトで異なる複数のプロパティを変更するには、With ブロック・コード内にプロパティを割り当てる文を記述し、プロパティの割り当てごとにオブジェクトを参照する代わりに一度オブジェクトを参照します。

object オブジェクト参照は、With ブロックが入力されると評価されますが、With ブロック内では再評価されません。そのため、単独の With 文を使用して、異なる複数のオブジェクトを処理することはできません。With ブロック内で object 変数の値を変更することは許可されていますが、この変更により、With ブロック内で匿名参照のために使用されるオブジェクトが変更されることはありません。

プロパティの操作は With の重要な機能ですが、他の用途も考えられます。With ブロック内では正当なコードであれば、いずれも使用可能です。

With ブロックを別のブロックに配置することにより、With 文を入れ子にすることが可能です。しかし、外部 With ブロックのメンバが内部 With ブロックでマスクされているため、外部 With ブロックにあるオブジェクトのメンバについては、内部 With ブロック内では、完全修飾されたオブジェクト参照を指定する必要があります。

Goto 文を使用して、With ブロックの本文を入力したり、入れ子になっている内部 With ブロックに入力したりすることはできません。ただし、With ブロック内で、そのブロック内のラベル、外側の With ブロック・ラベル、または With ブロックの外部のラベルに Goto を発行することは可能です。

以下の例は、同じオブジェクトの複数のプロパティに値を割り当てるための With 文の使用法を示しています。

With myPerson
   .City = "Cambridge"
   .State = "MA"
   .Street = "One Memorial Drive"
End With
FeedbackOpens in a new tab