Static (Visual Basic)
更新:2007 年 11 月
指定一個或多個宣告的區域變數會繼續存在,並在宣告它們的程序終止之後保持其最新的值。
備註
通常,一旦程序停止後,程序中的區域變數就不復存在,而靜態變數會繼續存在並保留其最新值。下次當程式碼呼叫程序時,不會重新初始化變數,而且它仍會保存您指派給它的最新值。只要在其中定義靜態變數的類別或模組存在,靜態變數就會繼續存在。
規則
**宣告內容:**您只能在區域變數上使用 Static。這表示 Static 變數的宣告內容必須是程序或程序內的區塊,而且它不能是原始程式檔 (Source File)、命名空間、類別、結構或模組。
您不可在結構程序內使用 Static。
無法推斷 Static 區域變數的資料型別。如需詳細資訊,請參閱區域型別推斷。
**組合的修飾詞:**您無法在相同的宣告中同時指定 Static 與 ReadOnly、Shadows 或 Shared。
行為
任何區域變數的行為視其是否在 Shared 程序中宣告而定。如果程序是 Shared,則會自動共用其所有區域變數,包括 Static 變數。整個應用程式只有一個此類變數的複本。您可以使用類別名稱,而非指向類別執行個體的變數,來呼叫 Shared 程序。
如果程序不是 Shared,則其區域變數會是「執行個體變數」(Instance Variable),包括 Static 變數。在類別的每個執行個體中,會有每個變數的獨立複本。您可以使用指向特定類別執行個體的變數,來呼叫非共用的程序。該執行個體中的任何變數都與其他執行個體中同名的變數無關。因此,它們可保有不同的值。
範例
以下範例將說明 Static 的用法。
Function updateSales(ByVal thisSale As Decimal) As Decimal
Static totalSales As Decimal = 0
totalSales += thisSale
Return totalSales
End Function
Static 變數 totalSales 只會初始化為 0 一次。每次輸入 updateSales 時,totalSales 仍具有您為它計算的最新值。
Static 修飾詞可用於以下內容中: