Dispose - called when we need disposing : IDisposable « Data Structure « VB.Net

Dispose - called when we need disposing

Dispose - called when we need disposing
Imports System
Imports System.Drawing
Imports System.Data
Imports System.IO
Imports System.Collections
Imports System.Windows.Forms
Imports System.Drawing.Printing

Public Class MainClass
    Shared Sub Main()
        Dim file As New MyFile("c:\FinalizeDemo.txt")
        file.AddText("Hello, world!")

        ' now, clear the reference to the object...
        file = Nothing

        ' wait for the user to press return...
        Console.WriteLine("Press Return to collect the garbage...")
        ' force a collect...

        ' wait for the user to quit...
        Console.WriteLine("Press Return to quit...")

    End Sub
End Class

Public Class MyFile
    Implements IDisposable
    Private stream As FileStream
    Private isDisposed As Boolean

    Public Sub New(ByVal filename As String)
        stream = New FileStream("test.txt", FileMode.OpenOrCreate)
        Console.WriteLine("Object " & GetHashCode() & " created.")
        Console.WriteLine("Using file: " & filename)

    End Sub

    Public Sub AddText(ByVal buf As String)
        If isDisposed = True Then
            Throw New ObjectDisposedException("I've been disposed!")
        End If

        Dim writer As New StreamWriter(stream)
    End Sub

    Public Sub Dispose() Implements System.IDisposable.Dispose
        If isDisposed = True Then Return
        stream = Nothing

        isDisposed = True


        Console.WriteLine("Object " & GetHashCode() & " disposed.")
    End Sub

    Protected Overrides Sub Finalize()
        Console.WriteLine("Object " & GetHashCode() & " finalized.")
    End Sub
End Class


Related examples in the same category

1.Use IDisposableUse IDisposable