VB.Net/Language Basics/Finalize — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 15:42, 26 мая 2010
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>