2011-01-20 4 views

答えて

16

を処理するためにClass_Terminateを使用することができ、コンストラクタは、デストラクタでもあります:

Sub Class_Terminate 
    ... ' Put your destructor code here ' 
End Sub 

この方法は、できるだけ早く実行されますこのオブジェクトの参照カウントはゼロになります。つまり、このオブジェクトを参照するすべての変数が有効範​​囲外になった場合、または他のものに設定されている場合(例えば、 Nothing)。したがってSet MyObject = Nothingは、MyObjectがこのオブジェクトを参照する最後の変数である場合にのみ、デストラクタを呼び出します。

+0

+1:これはしばらく私を悩ましていました。 o) –

+3

私がVB6を使いたいのと同じくらい、これには欠点があります。たとえば、プログラムがクラッシュした場合(未処理の例外、Endステートメントが実行されたなど)、ファイルのロックを解除したり、最終バッファをフラッシュしたりしないでください。 – Bob77

+0

ありがとう、@Heinziと@Bob Riemersma。 –

-1

No. VB6は、プログラマが明示的に何かを書くための仕組みを提供していません。プログラマができることはSet MyObject = Nothingであり、VBは残りの部分を処理します。

UPDATE:

一つはClass_Initializeと同様に、この

+2

が間違っています。 'Class_Terminate'メソッドは、オブジェクトがスコープから外れるか' Nothing'に設定されたときに起動されます。 –

+0

申し訳ありませんスタンドを修正しました。 – Kangkan

関連する問題