オブジェクトを削除する

指定のクラスのオブジェクトが削除される直前に実行されるプロシージャを指定するには、Sub Delete を定義します。Delete ステートメントを使用してオブジェクトを明示的に削除することができます。また、オブジェクトが不要になったときに LotusScript® によって自動的に削除することもできます。

Sub Delete

クラスの Sub Delete は、そのクラスのオブジェクトが LotusScript によって削除されるときに呼び出されます。Sub Delete 自体が実際にオブジェクトを削除するわけではありません。新しいオブジェクトを保持できるように、オブジェクトのメモリスペースを再利用する前に、終了のハウスキーピング処理を行います。Sub Delete はパラメータをとらず、値も返しません。

Delete ステートメントを使用してオブジェクトを削除する

Delete ステートメントを使用すると、1 つ以上の変数がそのオブジェクトへの参照を含んでいたとしても、そのオブジェクトは削除されます。削除されたオブジェクトへの参照を含むすべてのオブジェクト参照変数には自動的に値 NOTHING が割り当てられ、そのオブジェクトのメンバを参照できなくなります。

次の例では、変数 anObj と otherObj は NOTHING に設定されます。これらの変数は、単に NOTHING が入っているだけで有効であるため、再利用することができます。

Class DemoObject
  Sub New
    Print "New" 
  End Sub
 
  Sub Delete
    Print "Delete" 
  End Sub
End Class

Dim anObj As New DemoObject
Dim otherObj As DemoObject
Set otherObj = anObj    
 ' Make Other refer to the same object.
Delete anObj     
 ' Set all the object's references to NOTHING.

If ( (anObj is NOTHING) And (otherObj is NOTHING)) Then _
  Print "Both anObj and otherObj are now NOTHING"