VB.NET生存期開始與結束
VB.NET編程語言是由微軟公司推出的一款適用于很多領域的開發(fā)語言。那么,我們應當如何正確的理解這門語言,并熟練的運用它給我們帶來幫助呢?首先就讓我們從VB.NET生存期開始學習吧。#t#
已聲明元素的“生存期”是元素可供使用的時間周期。變量是***具有生存期的元素。因此,編譯器將過程參數(shù)和函數(shù)返回值視為變量的特殊情況。變量的生存期表示它可以存儲值的時間周期。在生存期內變量的值可以更改,但變量總是存儲某些值。
不同的VB.NET生存期
“成員變量”(在模塊級并且在任何過程外部聲明)的生存期一般與聲明該變量的元素的生存期相同。在類或結構中聲明的非共享變量作為聲明該變量的類或結構的每個實例的單獨副本存在。每個這樣的變量的生存期都與它的實例的生存期相同。但是,Shared 變量僅有一個生存期,即應用程序運行所持續(xù)的全部時間。
“局部變量”(在過程內部聲明)僅在聲明變量的過程的運行階段存在。這同樣適用于過程的參數(shù)和任何函數(shù)返回值。但是,如果該過程調用其他過程,則局部變量在被調用過程運行期間保留它們的值。
VB.NET生存期的開始
當控制進入聲明局部變量的過程時,局部變量的生存期便開始了。過程一開始運行,每個局部變量即被初始化為其數(shù)據(jù)類型的默認值。當過程遇到指定初始值的 Dim 語句 (Visual Basic) 時,它將那些變量設置為那些值,即使代碼已經(jīng)給它們賦了其他值。
結構變量的每個成員被視為單獨的變量初始化。同樣,數(shù)組變量的每個元素也單獨初始化。
在過程內部的塊中聲明的變量(例如 For 循環(huán))在進入過程時被初始化。不管代碼是否執(zhí)行該塊,這些初始化都會生效。
VB.NET生存期的結束
當過程終止時,不保留其局部變量的值,Visual Basic 將回收它們占用的內存。下次調用該過程時,將再度創(chuàng)建并重新初始化它的所有局部變量。
當類或結構的實例終止時,它的非共享變量便失去它們的內存和值。類或結構的每個新實例創(chuàng)建并初始化它的非共享變量。但是,Shared 變量一直保留到應用程序停止運行時。
VB.NET生存期的擴展
如果用 Static (Visual Basic) 關鍵字聲明局部變量,該變量的生存期要比其過程的執(zhí)行時間長。下表顯示了過程聲明如何確定 Static 變量存在的時間長度。