Ú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

Viz také