Control.Dispose メソッド
サーバー コントロールが、メモリから解放される前に最終的なクリーンアップを実行できるようにします。
Public Overridable Sub Dispose() Implements IDisposable.Dispose
[C#]
public virtual void Dispose();
[C++]
public: virtual void Dispose();
[JScript]
public function 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 サーバー コントロールのメソッド