オブジェクト用のメモリを管理する

ユーザーが作成したオブジェクトに関連付けられたメモリは、LotusScript® によってそのオブジェクトへのすべての参照が追跡されて自動的に管理されます。また、オブジェクトを参照する変数がなくなると、オブジェクトは自動的に削除されてメモリが解放されます。

オブジェクトを作成するとき、オブジェクトへの参照が割り当てられ、オブジェクトの参照カウント数が 1 に設定されます。そのオブジェクトに対するオブジェクト参照を変数に割り当てるたびに、参照カウント数が 1 ずつ増加します。オブジェクト参照変数がスコープ外になるなどしてオブジェクト参照が不要になると、オブジェクトの参照カウント数が 1 ずつ減少します。参照カウント数がゼロになると、そのオブジェクトへの参照を含む変数はないということになるため、オブジェクトは自動的に削除され、メモリが解放されます。

次の例では、参照カウント数がゼロになったときにオブジェクトが削除されます。

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

End Class

  Sub MyDemo
  ' localObject reference count is set to 1.
    Dim localObject As New demoObject
    If (Not (localObject Is NOTHING)) Then _
      Print "In MyDemo sub and localObject exists." 
  End Sub

Print "About to call MyDemo."
Call MyDemo
' Sub MyDemo is now out of scope...
' so the reference count is 0 and the object is deleted.
Print "Returned from MyDemo. Delete already ran."