Úrovně přístupu v jazyce Visual Basic
Úroveň přístupu deklarovaného prvku je rozsahem schopnosti k němu přistupovat, to znamená, jaký kód má oprávnění ke čtení nebo zápisu do něj. To se určuje nejen tím, jak deklarujete samotný prvek, ale také úrovní přístupu kontejneru elementu. Kód, který nemůže získat přístup k prvku obsahujícímu, nemá přístup k žádnému z jeho obsažených prvků, ani k těm deklarovaným jako Public
. Například proměnná Public
Private
ve struktuře může být přístupná z uvnitř třídy, která obsahuje strukturu, ale ne zvnějšku této třídy.
Veřejná
Veřejné klíčové slovo v příkazu deklarace určuje, že k prvku lze přistupovat z kódu kdekoli ve stejném projektu, z jiných projektů, které odkazují na projekt, a z libovolného sestavení sestaveného z projektu. Následující kód ukazuje ukázkovou Public
deklaraci:
Public Class ClassForEverybody
Můžete použít Public
pouze na úrovni modulu, rozhraní nebo oboru názvů. To znamená, že můžete deklarovat veřejný prvek na úrovni zdrojového souboru nebo oboru názvů nebo uvnitř rozhraní, modulu, třídy nebo struktury, ale ne v postupu.
Chráněno
Klíčové slovo Protected v příkazu deklarace určuje, že element lze získat přístup pouze ze stejné třídy nebo z třídy odvozené z této třídy. Následující kód ukazuje ukázkovou Protected
deklaraci:
Protected Class ClassForMyHeirs
Můžete použít Protected
pouze na úrovni třídy a pouze v případě, že deklarujete člena třídy. To znamená, že můžete deklarovat chráněný prvek ve třídě, ale ne na úrovni zdrojového souboru nebo oboru názvů nebo uvnitř rozhraní, modulu, struktury nebo procedury.
Friend
Klíčové slovo Friend v příkazu deklarace určuje, že prvek lze přistupovat ze stejného sestavení, ale ne z mimo sestavení. Následující kód ukazuje ukázkovou Friend
deklaraci:
Friend stringForThisProject As String
Můžete použít Friend
pouze na úrovni modulu, rozhraní nebo oboru názvů. To znamená, že můžete deklarovat přátelský prvek na úrovni zdrojového souboru nebo oboru názvů nebo uvnitř rozhraní, modulu, třídy nebo struktury, ale ne v rámci procedury.
Protected Friend
Kombinace klíčového slova Protected Friend v příkazu deklarace určuje, že k prvku lze přistupovat buď z odvozených tříd, nebo ze stejného sestavení, nebo z obou. Následující kód ukazuje ukázkovou Protected Friend
deklaraci:
Protected Friend stringForProjectAndHeirs As String
Můžete použít Protected Friend
pouze na úrovni třídy a pouze v případě, že deklarujete člena třídy. To znamená, že můžete deklarovat chráněný přátelský prvek ve třídě, ale ne na úrovni zdrojového souboru nebo oboru názvů nebo uvnitř rozhraní, modulu, struktury nebo procedury.
Privátní
Privátní klíčové slovo v příkazu deklarace určuje, že k prvku lze přistupovat pouze ze stejného modulu, třídy nebo struktury. Následující kód ukazuje ukázkovou Private
deklaraci:
Private _numberForMeOnly As Integer
Můžete použít Private
pouze na úrovni modulu. To znamená, že můžete deklarovat soukromý prvek uvnitř modulu, třídy nebo struktury, ale ne na úrovni zdrojového souboru nebo oboru názvů, uvnitř rozhraní nebo v rámci procedury.
Na úrovni modulu je příkaz bez jakýchkoli klíčových slov na úrovni Dim
přístupu ekvivalentní Private
deklaraci. Můžete ale chtít použít Private
klíčové slovo, aby byl kód čitelnější a interpretován.
Private Protected
Kombinace klíčového slova Private Protected v příkazu deklarace určuje, že k prvku lze přistupovat pouze ze stejné třídy, stejně jako z odvozených tříd nalezených ve stejném sestavení jako obsahující třída. Modifikátor Private Protected
přístupu se podporuje od jazyka Visual Basic 15.5.
Následující příklad ukazuje Private Protected
deklaraci:
Private Protected internalValue As Integer
Prvek lze deklarovat Private Protected
pouze uvnitř třídy. Nemůžete ji deklarovat v rámci rozhraní nebo struktury, ani ji nemůžete deklarovat na úrovni zdrojového souboru nebo oboru názvů, uvnitř rozhraní nebo struktury nebo v postupu.
Private Protected
Modifikátor přístupu je podporován jazykem Visual Basic 15.5 a novějším. Chcete-li jej použít, přidejte do souboru projektu jazyka Visual Basic (*.vbproj) následující prvek. Pokud je v systému nainstalována verze Visual Basic 15.5 nebo novější, můžete využít výhod všech jazykových funkcí podporovaných nejnovější verzí kompilátoru jazyka Visual Basic:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
Chcete-li použít Private Protected
modifikátor přístupu, musíte do souboru projektu jazyka Visual Basic (*.vbproj) přidat následující prvek:
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
Další informace najdete v tématu Nastavení jazykové verze jazyka Visual Basic.
Modifikátory přístupu
Klíčová slova, která určují úroveň přístupu, se nazývají modifikátory přístupu. Následující tabulka porovnává modifikátory přístupu:
Modifikátor přístupu | Udělená úroveň přístupu | Prvky, které můžete deklarovat s touto úrovní přístupu | Kontext deklarace, ve kterém můžete tento modifikátor použít |
---|---|---|---|
Public |
Neomezený: Přístup k libovolnému kódu, který vidí veřejný prvek |
Rozhraní Moduly Třídy Struktury Členy struktury Procedury Vlastnosti Členské proměnné Konstanty Výčty Události Externí deklarace Delegáti |
Zdrojový soubor Obor názvů Rozhraní Modul Třída Struktura |
Protected |
Derivační: Kód ve třídě, která deklaruje chráněný prvek nebo třídu odvozenou z ní, má přístup k elementu. |
Rozhraní Třídy Struktury Procedury Vlastnosti Členské proměnné Konstanty Výčty Události Externí deklarace Delegáti |
Třída |
Friend |
Sestavení: Kód v sestavení, který deklaruje, že k němu může přistupovat přátelský element |
Rozhraní Moduly Třídy Struktury Členy struktury Procedury Vlastnosti Členské proměnné Konstanty Výčty Události Externí deklarace Delegáti |
Zdrojový soubor Obor názvů Rozhraní Modul Třída Struktura |
Protected Friend |
Protected Sjednocení aFriend :Kód ve stejné třídě nebo stejném sestavení jako chráněný přátelský prvek nebo v jakékoli třídě odvozené z třídy elementu má přístup k němu |
Rozhraní Třídy Struktury Procedury Vlastnosti Členské proměnné Konstanty Výčty Události Externí deklarace Delegáti |
Třída |
Private |
Kontext deklarace: Kód v typu, který deklaruje soukromý prvek, včetně kódu v rámci obsažených typů, má přístup k elementu. |
Rozhraní Třídy Struktury Členy struktury Procedury Vlastnosti Členské proměnné Konstanty Výčty Události Externí deklarace Delegáti |
Modul Třída Struktura |
Private Protected |
Kód ve třídě, která deklaruje soukromý chráněný prvek, nebo kód v odvozené třídě nalezen ve stejném sestavení jako bas třída. | Rozhraní Třídy Struktury Procedury Vlastnosti Členské proměnné Konstanty Výčty Události Externí deklarace Delegáti |
Třída |