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
Koncepty
Deklarované názvy elementu (Visual Basic)
Odkazy na deklarované elementy (Visual Basic)
Úrovně přístupu v jazyce Visual Basic