Share via


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 修飾詞可用於以下內容中:

Dim 陳述式 (Visual Basic)

請參閱

概念

Visual Basic 中的存留期

Visual Basic 中的變數宣告

區域型別推斷

參考

Shadows

Shared (Visual Basic)

其他資源

結構:您自己的資料型別

了解類別