Obor v jazyce Visual Basic
Oboru prohlášených prvku je sada všech kód, který na ni můžete odkázat bez opravňujících jeho název nebo zpřístupnění prostřednictvím Importuje příkaz (.NET oboru názvů a typ).Prvek může mít obor na jednu z následujících úrovní:
Úroveň |
Description |
---|---|
Rozsah blok |
K dispozici pouze v rámci kód blokovat, v němž je deklarován |
Postup oboru |
K dispozici v rámci postupu, který je deklarován veškerý kód |
Rozsah modulu |
K dispozici veškerý kód v modulu, třídy nebo struktury, která je deklarována |
Obor názvů |
K dispozici v oboru názvů, který je deklarován veškerý kód |
Tyto úrovně oboru pokrok od nejužšího (Blokovat) k co nejširší (oboru), kde zpomalit se rozumí nejmenší sadu kód, který může odkazovat na prvek bez kvalifikace.Další informace naleznete v tématu "Úrovně obor" na této stránce.
Určení rozsahu a definování proměnných
Můžete určit rozsah prvek při jeho deklaraci.Obor může záviset na těchto faktorech:
Oblast (blok, postup, modul, třídy nebo struktury), ve kterém deklarovat prvek
Obor názvů obsahující prohlášení prvku
Úroveň přístupu, kterou deklarujete prvku
Pečlivě při definování proměnných se stejným názvem, ale jiný obor, protože to může vést k neočekávaným výsledkům.Další informace naleznete v tématu Odkazy na prvky deklarované (Visual Basic).
Úrovně oboru
Je k dispozici v celé oblasti, ve které deklarovat je programovací element.Veškerý kód regionu odkazovat na prvek bez opravňujících jeho název.
Rozsah blok
Blok je sada příkazů, které jsou uzavřeny zahájení a ukončení prohlášení příkazů, jako například:
Do a Loop
ForEach andNext
If a End If
Select a End Select
SyncLock a End SyncLock
Try a End Try
While a End While
With a End With
Pokud deklarujete proměnnou uvnitř bloku, můžete je použít pouze v rámci bloku.V následujícím příkladu oboru celočíselná proměnná cube je blok mezi If a End If, již se mohou vztahovat k cube při spuštění prochází z bloku.
If n < 1291 Then
Dim cube As Integer
cube = n ^ 3
End If
[!POZNÁMKA]
I když je omezeno na blok rozsah proměnné, její životnost je stále celý postup.Blok zadáte více než jednou během postupu, každá proměnná bloku zachová původní hodnotu.Chcete-li se vyhnout neočekávaným výsledkům v takovém případě je doporučeno inicializovat proměnné bloku na začátku bloku.
Postup oboru
Prvek deklarované uvnitř procedury není k dispozici mimo tento postup.Lze použít pouze postup, který obsahuje prohlášení.Na této úrovni jsou také známé jako místní proměnné.Deklarování s Dim prohlášení (Visual Basic), s nebo bez Statické (Visual Basic) klíčové slovo.
Postup a blok obor úzce souvisí.Pokud deklarujete proměnnou uvnitř procedury, ale mimo jakékoli blok v rámci postupu si můžete představit proměnné jako s rozsahem blok, kde je blok celý postup.
[!POZNÁMKA]
Všechny místní prvky, i když jsou Static proměnné, jsou soukromé postup, ve kterém se zobrazí.Nelze deklarovat prvku pomocí Veřejné (Visual Basic) klíčové slovo v rámci procedury.
Rozsah modulu
Pro pohodlí jednoho slova úroveň modulu se použije i pro moduly tříd a struktur.Prvky na této úrovni můžete deklarovat umístěním prohlášení prohlášení mimo jakýkoli postup nebo blok avšak v modulu, třídy nebo struktury.
Když prohlášení na úrovni modulu, určuje úroveň přístupu, kterou zvolíte obor.Obor názvů obsahující modul, třídy nebo struktury také ovlivňuje obor.
Prvky, které můžete deklarovat Soukromé (Visual Basic) úroveň přístupu jsou k dispozici všechny procedury v modulu, ale není žádný kód v jiného modulu.Dim Prohlášení na úrovni modulu výchozí Private -li používat klíčová slova úrovně přístupu.Však můžete provádět úroveň oboru a přístup patrnější pomocí Private klíčové slovo v Dim prohlášení.
V následujícím příkladu všechny procedury definované v modulu se mohou vztahovat k proměnné řetězce strMsg.Při druhém postupu se zobrazí obsah proměnné řetězce strMsg v dialogovém okně.
' Put the following declaration at module level (not in any procedure).
Private strMsg As String
' Put the following Sub procedure in the same module.
Sub initializePrivateVariable()
strMsg = "This variable cannot be used outside this module."
End Sub
' Put the following Sub procedure in the same module.
Sub usePrivateVariable()
MsgBox(strMsg)
End Sub
Obor názvů
Pokud deklarujete prvku v úrovni pomocí modulu Přítel (Visual Basic) nebo Veřejné (Visual Basic) klíčové slovo, bude k dispozici pro všechny procedury v celém oboru názvů, ve kterém je deklarována prvek.S následující změnu v předchozím příkladu řetězcové proměnné strMsg lze uvedené kódu kdekoli v oboru názvů své prohlášení.
' Include this declaration at module level (not inside any procedure).
Public strMsg As String
Obor názvů obsahuje vnořené obory názvů.K dispozici v oboru názvů prvku je také k dispozici v oboru názvů, všech vnořených uvnitř daného oboru názvů.
Pokud projekt neobsahuje žádné Příkaz Namespaces, v projektu je vše ve stejném oboru názvů.V tomto případě oboru názvů lze představit jako rozsah projektu.Publicprvky v modulu, třídy nebo struktury jsou k dispozici projektu odkazující na jejich projektu.
Volba oboru
Při deklarování proměnné je by mějte na paměti následující body při výběru svého oboru.
Výhody lokální proměnné
Místní proměnné jsou vhodná pro jakoukoli dočasné výpočet z následujících důvodů:
Zabránění konfliktu názvu. Místní názvy proměnných nejsou náchylné ke konfliktu.Můžete například vytvořit několik různých postupů, obsahující proměnnou s názvem intTemp.Jako každý dlouhý intTemp je deklarován jako místní proměnné každého postupu rozpozná pouze své vlastní verzi z intTemp.Jeden postupu můžete změnit hodnotu v jeho místních intTemp bez ovlivnění intTemp proměnných v jiné postupy.
Spotřeba paměti. Místní proměnné spotřebovat paměti pouze jejich postup je spuštěn.Jejich paměti uvolněn postup vrátí volající kód.Naopak Sdílené (Visual Basic) a Statické (Visual Basic) proměnné spotřebovávají určité prostředky paměti, dokud aplikace se zastaví, tak je pouze v případě potřeby použít.Proměnné instance spotřebovávat paměť při jejich instance nadále existovat, což je méně efektivní než místní proměnné, ale potenciálně efektivnější než Shared nebo Static proměnné.
Minimalizace oboru
Obecně při deklarování jakoukoli proměnnou nebo konstantu, je dobré praxe tak, aby jako postačující obor programování (rozsah blok je nejužším).To pomáhá šetřit paměť a minimalizuje pravděpodobnost kódu chybně odkazující na chybné proměnné.Podobně by deklarování proměnné se Statické (Visual Basic) případě, že je nezbytné zachovat její hodnotu mezi volání procedur.
Viz také
Úkoly
Jak: řízení oboru proměnné (Visual Basic)
Koncepty
Vlastnosti deklarované prvku (Visual Basic)
Životnost v jazyce Visual Basic
Úrovně přístupu v jazyce Visual Basic