Sdílet prostřednictvím


Static (Visual Basic)

Určuje, že jedna nebo více deklarovaných místních proměnných má nadále existovat a po ukončení postupu, ve kterém jsou deklarovány, zachovat jejich nejnovější hodnoty.

Poznámky

Za normálních okolností přestane místní proměnná v postupu existovat, jakmile se procedura zastaví. Statická proměnná nadále existuje a uchovává její nejnovější hodnotu. Při příštím volání kódu procedura proměnná není znovu inicializována a stále obsahuje nejnovější hodnotu, kterou jste k ní přiřadili. Statická proměnná nadále existuje po celou dobu životnosti třídy nebo modulu, ve které je definována.

Pravidla

  • Kontext deklarace Můžete použít Static pouze u místních proměnných. To znamená, že kontext deklarace proměnné Static musí být procedura nebo blok v rámci procedury a nemůže se jednat o zdrojový soubor, obor názvů, třídu, strukturu nebo modul.

    Uvnitř procedury struktury nelze použít Static .

  • Datové typy místních proměnných Static nelze odvodit. Další informace naleznete v tématu Odvození místního typu.

  • Kombinované modifikátory. Nelze zadat Static společně s ReadOnly, Shadowsnebo Shared ve stejné deklaraci.

Chování

Když v rámci procedury deklarujete statickou proměnnou Shared , je pro celou aplikaci k dispozici pouze jedna kopie statické proměnné. Proceduru Shared voláte pomocí názvu třídy, nikoli proměnné, která odkazuje na instanci třídy.

Když deklarujete statickou proměnnou v procedurě, která není Shared, je pro každou instanci třídy k dispozici pouze jedna kopie proměnné. Volání nesdílené procedury pomocí proměnné, která odkazuje na konkrétní instanci třídy.

Příklad

Následující příklad ukazuje použití Static.

Function updateSales(ByVal thisSale As Decimal) As Decimal
    Static totalSales As Decimal = 0
    totalSales += thisSale
    Return totalSales
End Function

Proměnná StatictotalSales se inicializuje na hodnotu 0 pouze jednou. Pokaždé, když zadáte updateSales, totalSales má stále nejnovější hodnotu, kterou jste pro ni vypočítali.

Static Modifikátor lze použít v tomto kontextu:

Příkaz Dim

Viz také