LOTUSSCRIPT 言語


Property Get/Set ステートメント

プロパティを定義します。プロパティは、1 つの変数のように使用できる名前の付いた Get と Set プロシージャの組です。

構文

[ Static ] [ Public | Private ] Property { Get | Set } propertyName [ ( [ paramList ] ) ] [ As type ]

[ statements ]

End Property

要素

Static


Public | Private
Get | Set
propertyName
paramList
type
statements
使用法

Public キーワードは、クラスのメンバを宣言するときを除いて、アプリケーションオブジェクトのスクリプトに直接記述したり、アプリケーションオブジェクトスクリプトの %Include ファイル内で使用することはできません。Public 宣言は (Globals) で使用してください。

通常、プロパティは同じ名前の 2 つのプロシージャ (Property Get と Property Set) から構成されます。ただし、必ず両方が必要なわけではありません。

クラスのプロパティメンバは Static として宣言できません。つまり、クラス定義内の Property Get や Property Set ステートメントを Static で始めることはできません。

Property Get を使用する

Property Get プロシージャは、関数に似ています。以下に例を示します。

' These statements assign the value of saveInt to x
Dim saveInt As Integer
Property Get pInt As Integer
  pInt% = saveInt%
End Property
x = pInt%

または、

' These statements assign the value of saveInt plus
' increment to x
Dim saveInt As Integer
Property Get pInt (increment As Integer) As Integer
  pInt% = saveInt% + increment%
End Property
x = pInt%(1%)

Property Set を使用する

Property Set プロシージャは、Property Get プロシージャの逆です。Property Set プロシージャに入力するときに、Property Set プロシージャと同じ名前と型を持つ暗黙的変数には、Property Set 内で使用される値が格納されます。Property Set 内では、値を変数に代入するのではなく、変数の値を使用します。

代入ステートメントの左辺に名前を指定して Property Set を呼び出します。ステートメントの右辺は Property Set に使用されます。以下に例を示します。

' These statements assign the value of x to SaveInt
Dim SaveInt As Integer
Property Set pInt As Integer
  saveInt% = pInt%
End Property
pInt% = x

または、

' These statements assign the value of x + increment
' to SaveInt
Dim SaveInt As Integer
Property Set pInt (increment As Integer) As Integer
  saveInt% = pInt% + increment%
End Property
pInt%(1%) = x

配列、リスト、コレクションを返すプロパティを参照する

Get 命令が配列、リスト、またはコレクションを返す場合は、以下の決まりに従ってプロパティへの参照にサブスクリプトを含めることができます。


Set 命令では、プロパティの参照にサブスクリプトを含められません。参照の後に続くカッコでくくられた一覧は、引数の一覧でなければなりません。たとえば、p1(1) は、パラメータを 1 つ含むプロパティを表します。p1(1,2)(3) または p1()(3) は、Set 命令では不正となります。

プロパティを関数に引き渡す

LotusScript プロパティ (Property Get か Property Set で定義したプロパティ) は、関数に値渡しできます。参照渡しはできません。


関連項目