發新話題

Visual Basic 教學 - 《關於變數》靜態變數

Visual Basic 教學 - 《關於變數》靜態變數

靜態變數(Static variables)
除範圍之外,變數還有存活期,在這個期間變數可以保持它們的值。在應用程式的存活期內,模組層次變數和公用變數的值會一直保持著。但是,對於用 Dim 宣告的區域變數,只有當宣告它們的程序在執行時,這些區域變數才存在。通常,當一個程序執行完畢,所含區域變數的值就會消失,而且變數所佔據的記憶體也會被釋放。當下一次執行該程序時,它的所有區域變數將重新初始化。
然而,您可以將區域變數宣告成靜態,以保留變數的值。在程序內部用 Static 關鍵字宣告一個或多個變數,其用法和 Dim 陳述式完全一樣:
Static Depth舉例而言,下面的函數將先前儲存在靜態變數 Accumulate 中的營運總值與一個新數值相加,以計算營運總值。
Function RunningTotal (num)   Static ApplesSold   ApplesSold = ApplesSold + num   RunningTotal = ApplesSoldEnd Function如果用 Dim 而不用 Static 宣告 ApplesSold,則呼叫函數時以前的累計值不會保留下來,函數每次只會傳回相同的數值。
您可以在模組的宣告區塊宣告 ApplesSold,使它成為模組層次變數,如此也會產生相同的效果。然而,當您使用這種方法來更改變數的範圍,程序就不能再對變數做獨佔性的存取。由於其它程序也可以存取和改變變值,所以運營總值也許不可靠,並且程式碼將更難於維護。
宣告所有的區域變數為靜態變數
要使程序中所有的區域變數都為靜態變數,您可以在程序標頭的起始處加上 Static 關鍵字。例如:
Static Function RunningTotal (num)這將使程序中的所有區域變數都變為靜態,而無論它們是用 Static、Dim、Private 宣告還是隱含宣告的。您可以將 Static 放在任何 Sub 或 Function 程序標頭的前面,包括事件程序和宣告為 Private 的程序。

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。