VB.Net/Language Basics/Finalize

Материал из VB Эксперт
Версия от 15:42, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Finalize - called when the object is removed from memory

<source lang="vbnet"> 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 o As MyObject = New MyObject
     
     o = Nothing
   End Sub

End Class

Public Class MyObject

   " Constructor - called when the object is started...
   Public Sub New()
       Console.WriteLine("Object " & GetHashCode() & " created.")
   End Sub
   " Finalize - called when the object is removed from memory...
   Protected Overrides Sub Finalize()
       MyBase.Finalize()
       " tell the user we"ve deleted...
       Console.WriteLine("Object " & GetHashCode() & " finalized.")
   End Sub

End Class

      </source>


Finalize Class

<source lang="vbnet"> Imports System.IO Module Module1

   Sub Main()
       Dim c1 As New Contact("Name 1", "111-555-1111", "1@1.ru")
       Dim c2 As New Contact("Name 2", "222-555-1212", "2@2.ru")
       Dim c3 As New Contact("Name 3", "333-555-1212", "3@3.ru")
   End Sub

End Module

   Class Contact
       Public Name As String
       Public Phone As String
       Public EMail As String
       Sub New(ByVal ContactName As String, ByVal ContactPhone As String, ByVal ContactEmail As String)
           Console.WriteLine("Name: " & ContactName & " Phone " & ContactPhone & " Email " & ContactEmail)
           Name = ContactName
           Phone = ContactPhone
           EMail = ContactEmail
       End Sub
       Protected Overrides Sub Finalize()
           Console.WriteLine("In Finalize for " & Name)
       End Sub
   End Class
          
      </source>


Finalize Objects

<source lang="vbnet"> Imports System Public Class MainClass

   Shared Sub Main(ByVal args As String())
       Dim new_numbered As New Numbered()
   End Sub

End Class

   Public Class Numbered
       Public Sub New()
       End Sub
       Protected Overrides Sub Finalize()
           Console.WriteLine("Garbage collection started " )
       End Sub
   End Class
          
      </source>