DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

Disposeメソッドが確実に呼び出されるようにする

C#にはDisposeメソッドを確実に呼び出すようにする簡単な方法が用意されています。それはusingステートメントを使う方法です。次の例ではFontクラスのインスタンスを作成し、その後クリーンアップしています。

C#
コードを隠すコードを選択
using System.Drawing;
class a
{
    public static void Main()
    {
        using (Font MyFont = new Font("Arial", 10.0f))
        {
            //MyFont を使用したコードがあるものとする
        } //コンパイラが MyFont の Dispose を呼び出す

    }
}

.NET Farmework 1.1以前で、これと同じものをVB.NETで書くと、Try...Finally文のFinallyにおいてDisposeメソッドを呼び出すことになります。

VB.NET
コードを隠すコードを選択
Imports System.Drawing
Class a
    Public Shared Sub Main()
        Dim MyFont As New Font("Arial", 10.0F)
        Try
            'MyFont を使用したコードがあるものとする
        Finally
            'MyFont の Dispose を呼び出す
            If Not MyFont Is Nothing Then
                MyFont.Dispose()
            End If
        End Try
    End Sub
End Class

.NET Framework 2.0以降では、VB.NETでもUsingを使用することができます。

VB.NET
コードを隠すコードを選択
Imports System.Drawing
Class a
    Public Shared Sub Main()
        Using MyFont As New Font("Arial", 10.0F)
            'MyFont を使用したコードがあるものとする
        End Using 'コンパイラが MyFont の Dispose を呼び出す
    End Sub
End Class

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。