Static (Visual Basic)

指定一個或多個宣告的區域變數會繼續存在,並在宣告它們的程序終止之後保持其最新的值。

備註

通常,一旦程序停止後,程序中的區域變數就不復存在, 而靜態變數會繼續存在並保留其最新值。 下次當程式碼呼叫程序時,不會重新初始化變數,而且它仍會保存您指派給它的最新值。 只要在其中定義靜態變數的類別或模組存在,靜態變數就會繼續存在。

規則

  • **宣告內容:**您只能在區域變數上使用 Static。 這表示 Static 變數的宣告內容必須是程序或程序內的區塊,而且它不能是原始程式檔 (Source File)、命名空間、類別、結構或模組。

    您不可在結構程序內使用 Static。

  • 無法推斷 Static 區域變數的資料型別。 如需詳細資訊,請參閱區域型別推斷 (Visual Basic)

  • **組合的修飾詞:**您無法在同一個宣告中同時指定 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)

請參閱

參考

Shadows (Visual Basic)

Shared (Visual Basic)

概念

Visual Basic 中的存留期

Visual Basic 中的變數宣告

區域型別推斷 (Visual Basic)

其他資源

結構 (Visual Basic)

Visual Basic 中的物件和類別