Sdílet prostřednictvím


Doba platnosti v jazyce Visual Basic

Životnost prohlášených prvku je časové období, během které je k dispozici pro použití.Proměnné jsou pouze prvky, které mají životnost.Pro tento účel kompilátor zpracovává parametry procedury a funkce vrátí jako zvláštní případy proměnné.Životnost proměnné představuje dobu, během které může obsahovat hodnotu.Změnit její hodnotu přes jeho životnosti, ale vždy obsahuje nějakou hodnotu.

Různých životností

A členské proměnné (deklarované na úrovni modulu mimo jakýkoliv postup) obvykle má stejnou životnost jako prvek, který je deklarován.Sdíleném proměnné deklarované v třídě nebo struktury existuje jako samostatná kopie pro každou instanci třídy nebo struktury, která je deklarována.Každá taková proměnná má stejnou životnost jako jeho instanci.Však Shared proměnná má pouze jediného životnosti, které trvá po celou dobu, je aplikace spuštěna.

A místní proměnná (deklarované uvnitř procedury) existuje pouze postup, který je deklarován je spuštěn.To platí také tento postup parametry a jakékoli funkce vrácení.Však pokud tento postup vyžaduje jiné postupy, místní proměnné zachovat jejich hodnoty spuštěn volané procedury.

Začátek doby životnosti

Místní proměnné životnost začíná při řízení zadá postup, který je deklarován.Každý místní proměnné je inicializována na výchozí hodnotu pro jeho typ dat co nejdříve zahájí postup systémem.Při postupu narazí Dim prohlášení, které určuje počáteční hodnoty, nastaví těchto proměnných na tyto hodnoty i v případě, že váš kód by již přiřazeny jiné hodnoty.

Každý člen strukturu proměnné je inicializován, jako kdyby byla samostatná proměnná.Podobně každý prvek proměnné array je inicializován jednotlivě.

Proměnné deklarované uvnitř bloku uvnitř procedury (například For smyčky) jsou inicializovány při vstupu do procedury.Tyto inicializací projeví kódu někdy provede blok či nikoli.

Konec platnosti

Postup ukončí, nebudou zachovány hodnoty svých lokálních proměnných, a Visual Basic uvolňuje volné jejich paměti.Při příštím volání procedury, všechny místní proměnné jsou vytvořeny znovu a znovu inicializovat.

Když ukončí instanci třídy nebo struktury, jeho sdíleném proměnné ztratit své paměti a jejich hodnoty.Každá nová instance třídy nebo struktury vytvoří a nové inicializaci jeho sdíleném proměnné.Však Shared proměnné jsou zachovány, dokud aplikace se zastaví.

Prodloužení životnosti

Pokud deklarujete proměnnou s místní Static klíčové slovo je delší než doba provádění postupu jeho životnosti.Následující tabulka ukazuje, jak určuje postup prohlášení jak dlouho Static proměnná existuje.

Postup umístění a sdílení

Statické proměnné životnost začíná

Statické proměnné životnost končí.

V modulu (ve výchozím nastavení sdíleny)

Při prvním volání procedury

Při aplikaci se zastaví

Ve třídě Shared (postup není instanci člena)

První postup se nazývá konkrétní instanci buď samotný název třídy nebo struktury

Při aplikaci se zastaví

V instanci třídy není Shared (postup je instanci člena)

První postup se nazývá konkrétní instance

Při uvolnění instance úklidu (GC)

Statické proměnné stejný název.

Statické proměnné s názvem více než jedním postupem můžete deklarovat.Pokud tak učiníte, Visual Basic kompilátor považuje každé takové proměnné, jako samostatný prvek.Inicializace tyto proměnné neovlivní ostatní hodnoty.Totéž platí, pokud definovat postup sadu přetížení a deklarovat statické proměnné se stejným názvem v každé přetížení.

Obsahující prvky pro statické proměnné

Statická lokální proměnná v rámci třídy, můžete deklarovat, uvnitř postup v dané třídy.Statická lokální proměnná v rámci struktury, však nelze deklarovat struktury členské nebo jako lokální proměnné postup v rámci dané struktury.

Příklad

Description

Následující příklad deklaruje proměnnou s Static (Visual Basic) klíčové slovo.(Všimněte si, že není třeba Dim klíčové slovo při Dim – příkaz (Visual Basic) modifikační používá jako Static.)

Kód

Function runningTotal(ByVal num As Integer) As Integer 
    Static applesSold As Integer
    applesSold = applesSold + num
    Return applesSold
End Function

Komentáře

V předchozím příkladu proměnné applesSold nadále existovat po postupu runningTotal vrátí volající kód.Dalším runningTotal se nazývá applesSold zachová jeho dříve vypočtenou hodnotou.

Pokud applesSold byly přihlášeny bez použití Static, přes volání by zachovány předchozí souhrnné hodnoty runningTotal.Dalším runningTotal byla volána, applesSold by byly znovu vytvořen a inicializován 0, a runningTotal by jednoduše vrátili stejnou hodnotu, se kterou byla volána.

Probíhá kompilace kódu

Můžete inicializovat hodnotu Statická lokální proměnná jako součást své prohlášení.Pokud deklarujete matice se Static, můžete inicializovat své rank (číslo dimenze), délka každé dimenze a hodnoty jednotlivých prvků.

Zabezpečení

V předchozím příkladu můžete vyrábět stejnou životnost prohlášením, applesSold na úrovni modulu.Pokud tímto způsobem změnit rozsah proměnné však postup by již mít výhradní přístup.Protože nelze získat přístup k jiné postupy applesSold a změňte jeho hodnotu, může nespolehlivé průběžného součtu a kód může být obtížné udržovat.

Viz také

Úkoly

Řešení potíží s datovými typy (Visual Basic)

Referenční dokumentace

Shared (Visual Basic)

Nothing (Visual Basic)

Static (Visual Basic)

Koncepty

Deklarované názvy elementu (Visual Basic)

Odkazy na deklarované elementy (Visual Basic)

Rozsah v jazyce Visual Basic

Úrovně přístupu v jazyce Visual Basic

Proměnné v jazyce Visual Basic

Deklarace proměnné v jazyce Visual Basic