LOTUSSCRIPT 言語
プロパティを定義します。プロパティは、1 つの変数のように使用できる名前の付いた Get と Set プロシージャの組です。
構文
[ Static ] [ Public | Private ] Property { Get | Set } propertyName [ ( [ paramList ] ) ] [ As type ]
[ statements ]
End Property
要素
Static
既定では、モジュールスコープ内のプロパティは Private です。既定では、クラススコープ内のプロパティは Public です。
Property Get と Property Set の定義には、同じ Public 設定または Private 設定を使用しなければなりません。
各パラメータ宣言の構文は次のとおりです。
[ ByVal ] parameter [ ( ) | List ] [ As type ]
parameter() は配列変数です。parameter List は parameter をリスト変数として識別します。そうでない場合、parameter には LotusScript で使用できる他の任意のデータ型の変数を指定できます。
As dataType は変数のデータ型を指定します。この節を省略し、parameter にデータ型接尾辞を追加して、スカラーデータ型の変数を宣言できます。この節を省略し、同時に parameter にデータ型接尾辞を追加しない場合 (また、既存の Deftype ステートメントで処理されない場合)、データ型は Variant になります。
type には任意のスカラーデータ型、Variant 型、またはクラス名を指定できます。
As Type を指定しなければ、値の型はプロパティ名の接尾辞によって決まります。type と接尾辞の両方を同時に指定しないでください。LotusScript がエラーとなります。
type を指定せず、プロパティ名に接尾辞を追加しなければ、プロパティの値は Variant 型または Deftype ステートメントで指定された型になります。
Property Get と Property Set の定義の types は同じでなければなりません。
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 命令が配列、リスト、またはコレクションを返す場合は、以下の決まりに従ってプロパティへの参照にサブスクリプトを含めることができます。
プロパティを関数に引き渡す
LotusScript プロパティ (Property Get か Property Set で定義したプロパティ) は、関数に値渡しできます。参照渡しはできません。
例 関連項目