次の方法で共有


Control.Dispose メソッド

サーバー コントロールが、メモリから解放される前に最終的なクリーンアップを実行できるようにします。

Public Overridable Sub Dispose() Implements IDisposable.Dispose
[C#]
public virtual void Dispose();
[C++]
public: virtual void Dispose();
[JScript]
public function Dispose();

実装

IDisposable.Dispose

解説

Control を使い終わったら、Dispose を呼び出します。Dispose メソッドは、 Control を使用できない状態にします。このメソッドを呼び出した後で、コントロールへのすべての参照を解放し、占有されていたメモリをガベージ コレクションでクリアできるようにする必要があります。

メモ    Control への最後の参照を解放する前に、必ず Dispose を呼び出します。このメソッドを呼び出さないと、 Control が使用しているリソースは、ガベージ コレクションによって Control オブジェクトのデストラクタが呼び出されるまで解放されません。

カスタム サーバー コントロールを作成するときに通常オーバーライドされるメソッドの詳細については、「 ASP.NET サーバー コントロールのメソッド 」を参照してください。

使用例

[Visual Basic, C#, C++] 次に示すのは、 Dispose メソッドをオーバーライドし、コントロールに関連付けられている HtmlTextWriter オブジェクトを閉じて、myButton という名前の Button コントロールで Dispose メソッドを呼び出すコード例です。このバージョンの Dispose メソッドが呼び出されるときに Exception がスローされた場合は、現在の System.Web.HttpRepsonse オブジェクトにメッセージが書き込まれます。

 
Public Overrides Sub Dispose()
   Try
      Context.Response.Write("Disposing " & ToString())
      ' Perform resource cleanup.
      myTextWriter.Close()
      myButton.Dispose()
   Catch myException As Exception
      Context.Response.Write("Exception occurred: " & myException.Message)
   End Try
End Sub

[C#] 
public override void Dispose()
{
   try
   {
      Context.Response.Write("Disposing " + ToString());
      // Perform resource cleanup.
      myTextWriter.Close();
      myButton.Dispose();
   }
   catch(Exception myException)
   {
      Context.Response.Write("Exception occurred: "+myException.Message);
   }
}

[C++] 
public:
    void Dispose()
    {
        try
        {
            Context->Response->Write(String::Concat(S"Disposing ", ToString()));
            // Perform resource cleanup.
            myTextWriter->Close();
            myButton->Dispose();
        }
        catch(Exception* myException)
        {
            Context->Response->Write(String::Concat(S"Exception occurred: ", myException->Message));
        }
    }

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 2000, Windows XP Professional, Windows Server 2003 ファミリ

参照

Control クラス | Control メンバ | System.Web.UI 名前空間 | コントロール実行の有効期間 | ASP.NET サーバー コントロールのメソッド