什么是VB.NET對(duì)象生命周期
VB.NET具有面向?qū)ο笳Z(yǔ)言的一切特征,并其還為程序員帶來(lái)了一些不一樣的體驗(yàn)。比如VB.NET對(duì)象的一些相關(guān)性能等。在這里,我們會(huì)介紹有關(guān)VB.NET對(duì)象生命周期的一些內(nèi)容,希望能給大家?guī)?lái)一些幫助。#t#
我們應(yīng)當(dāng)怎樣去正確的理解VB.NET對(duì)象生命周期呢?在這里就給出了一個(gè)恰當(dāng)?shù)慕獯穑?/p>
當(dāng)一個(gè)對(duì)象被銷(xiāo)毀時(shí),Sub Destruct方法被系統(tǒng)自動(dòng)調(diào)用,但不能被顯式調(diào)用。.NEt框架能夠在系統(tǒng)自認(rèn)為一個(gè)對(duì)象并沒(méi)有使用價(jià)值的時(shí)候把該對(duì)象銷(xiāo)毀。但是切記,不象Class+Terminate和Sub New那樣,系統(tǒng)將會(huì)在上一次引用一個(gè)對(duì)象之后調(diào)用Sub Destruct這個(gè)方法。
1.帶參數(shù)的Sub New的構(gòu)造函數(shù)
用戶可以通過(guò)在類的定義的任何地方定義Sub New過(guò)程來(lái)實(shí)現(xiàn)對(duì)類的構(gòu)造函數(shù)。構(gòu)造函數(shù)的***行必須是調(diào)用它的基本類的構(gòu)造函數(shù)或者是當(dāng)前類的其他構(gòu)造函數(shù)。用戶必須確認(rèn)基本類是在其他的類的初始化過(guò)程之前初始化的。但是令人驚訝的是,即使創(chuàng)建基本類,用戶也必須調(diào)用構(gòu)造函數(shù)Mybase.New,因?yàn)樗械念惗际亲罱K從一個(gè)名為Object的類繼承而來(lái)的。在調(diào)用它的父類的構(gòu)造函數(shù)以后,用戶可以在Sub New過(guò)程中加入一些另外的初始化的代碼。Sub New可以支持帶參數(shù)的構(gòu)造函數(shù),這些參數(shù)通過(guò)調(diào)用構(gòu)造函數(shù)時(shí),從過(guò)程中傳入的,例如:
- Dim t as truck=New Truck(18)
2.使用Sub Destruct作為析構(gòu)函數(shù)
為了建立一個(gè)類的析構(gòu)函數(shù),用戶可以建立一個(gè)名為Sub Destruct的過(guò)程,并且可以入在類的定義的任何地方,在析構(gòu)函數(shù)中寫(xiě)入的代碼可以用來(lái)釋放其他的對(duì)象,關(guān)閉一個(gè)文件或者做其他的結(jié)束工作。下面的例子說(shuō)明了怎樣通過(guò)一個(gè)帶參數(shù)的構(gòu)造函數(shù)建立一個(gè)類,并且初始化一個(gè)屬性。
- Imports System
- Namespace TruckNamespace
- Module Module1
- Class Truck
- Private iWheels as Integer
- Sub New(initialWheels as integer)
- MyBase.New
- iWheels=initialWheels
- End Sub
- Sub Destruct()
- 'Place cleanup code here
- End Sub
- Property Wheels as Integer
- Get
- Wheels=iWheels
- End Get
- Set
- iWheels=Value
- End Set
- End Property
- End Class
- shared sub Main()
- Dim t as truck=New Truck(18)
- Console.WriteLine("The truck has"&_
- t.wheels&"wheels when initialized")
- End Sub
- End Module
以上就是我們?yōu)榇蠹医榻B的VB.NET對(duì)象生命周期的相關(guān)概念。