Hozzáférési szintek a Visual Basicben
A deklarált elemek hozzáférési szintje a hozzáférés képessége, vagyis az, hogy melyik kód rendelkezik olvasási vagy írási engedéllyel. Ezt nem csak az elem deklarálása határozza meg, hanem az elem tárolójának hozzáférési szintje is. A kód, amely nem tud hozzáférni egy adott elemhez, nem fér hozzá a benne lévő elemekhez, még a deklarált elemekhez Public
sem. Egy struktúrában lévő Private
változó például Public
a struktúrát tartalmazó osztályon belülről érhető el, de az osztályon kívülről nem.
Nyilvános
A deklarációs utasítás nyilvános kulcsszója azt határozza meg, hogy az elem a kódból bárhonnan elérhető legyen ugyanabban a projektben, a projektre hivatkozó más projektekből és a projektből létrehozott bármely szerelvényből. Az alábbi kód egy mintadeklarációt Public
mutat be:
Public Class ClassForEverybody
Csak modul-, interfész- vagy névtérszinten használható Public
. Ez azt jelenti, hogy egy nyilvános elemet deklarálhat egy forrásfájl vagy névtér szintjén, vagy egy interfészen, modulon, osztályon vagy struktúrán belül, de eljárásban nem.
Védett
A deklarációs utasítás védett kulcsszója azt határozza meg, hogy az elem csak ugyanabban az osztályban vagy az ebből az osztályból származtatott osztályból érhető el. Az alábbi kód egy mintadeklarációt Protected
mutat be:
Protected Class ClassForMyHeirs
Csak osztályszinten használható Protected
, és csak akkor, ha egy osztály tagját deklarálja. Ez azt jelenti, hogy védett elemet deklarálhat egy osztályban, de nem a forrásfájl vagy névtér szintjén, illetve egy interfészen, modulon, struktúrán vagy eljáráson belül.
Barátom
A deklarációs utasítás Barát kulcsszója azt határozza meg, hogy az elem ugyanabból a szerelvényből érhető el, de a szerelvényen kívülről nem. Az alábbi kód egy mintadeklarációt Friend
mutat be:
Friend stringForThisProject As String
Csak modul-, interfész- vagy névtérszinten használható Friend
. Ez azt jelenti, hogy egy barátelemet egy forrásfájl vagy névtér szintjén, vagy egy interfészen, modulon, osztályon vagy struktúrán belül deklarálhat, de eljárásban nem.
Védett barát
A deklarációs utasítás Védett barát kulcsszókombinációja azt határozza meg, hogy az elem származtatott osztályokból vagy ugyanazon szerelvényből vagy mindkettőből érhető el. Az alábbi kód egy mintadeklarációt Protected Friend
mutat be:
Protected Friend stringForProjectAndHeirs As String
Csak osztályszinten használható Protected Friend
, és csak akkor, ha egy osztály tagját deklarálja. Ez azt jelenti, hogy védett barátelemet deklarálhat egy osztályban, de nem a forrásfájl vagy névtér szintjén, illetve egy interfészen, modulon, struktúrán vagy eljáráson belül.
Személyes
A deklarációs utasítás privát kulcsszója azt határozza meg, hogy az elem csak ugyanabban a modulban, osztályban vagy struktúrában érhető el. Az alábbi kód egy mintadeklarációt Private
mutat be:
Private _numberForMeOnly As Integer
Csak modulszinten használható Private
. Ez azt jelenti, hogy egy privát elemet deklarálhat egy modulon, osztályon vagy struktúrán belül, de nem a forrásfájl vagy névtér szintjén, egy felületen belül vagy egy eljárásban.
A modul szintjén a Dim
hozzáférési szintű kulcsszavak nélküli utasítás egyenértékű a deklarációval Private
. Előfordulhat azonban, hogy a Private
kulcsszóval szeretné megkönnyíteni a kód olvasását és értelmezését.
Privát védelem
A deklarációs utasítás Privát védelem alatt álló kulcsszókombinációja azt határozza meg, hogy az elem csak ugyanazon osztályon belülről érhető el, valamint azokat a származtatott osztályokat is, amelyek ugyanabban a szerelvényben találhatók, mint az azt tartalmazó osztály. A Private Protected
hozzáférés-módosító a Visual Basic 15.5-től kezdve támogatott.
Az alábbi példa egy deklarációt Private Protected
mutat be:
Private Protected internalValue As Integer
Egy Private Protected
elemet csak egy osztályon belül deklarálhat. Nem deklarálhatja egy felületen vagy struktúrában, és nem deklarálhatja forrásfájl vagy névtér szintjén, interfészen vagy struktúrán belül, vagy eljárásban.
A Private Protected
hozzáférés-módosítót a Visual Basic 15.5-ös és újabb verziói támogatják. A használatához adja hozzá a következő elemet a Visual Basic-projektfájlhoz (*.vbproj). Mindaddig, amíg a Visual Basic 15.5 vagy újabb verzió telepítve van a rendszerre, a Visual Basic fordító legújabb verziója által támogatott összes nyelvi funkciót kihasználhatja:
<PropertyGroup>
<LangVersion>latest</LangVersion>
</PropertyGroup>
A Private Protected
hozzáférés-módosító használatához a következő elemet kell hozzáadnia a Visual Basic-projektfájlhoz (*.vbproj):
<PropertyGroup>
<LangVersion>15.5</LangVersion>
</PropertyGroup>
További információkért lásd a Visual Basic nyelvi verziójának beállítását.
Hozzáférési módosítók
A hozzáférési szintet meghatározó kulcsszavakat hozzáférési módosítóknak nevezzük. Az alábbi táblázat a hozzáférési módosítókat hasonlítja össze:
Hozzáférés-módosító | Hozzáférési szint megadva | Az ezzel a hozzáférési szinttel deklarálható elemek | Deklarációs környezet, amelyen belül használhatja ezt a módosítót |
---|---|---|---|
Public |
Korlátlan: Bármely kód, amely láthatja a nyilvános elemet, hozzáférhet hozzá |
Interfészek Modulok Osztályok Struktúrák Tagstruktúra Eljárások Tulajdonságok Tagváltozók Állandók Enumerálások esemény Külső deklarációk Delegáltak |
Forrásfájl Névtér Interfész Modul Osztály Struktúra |
Protected |
Származékos: A védett elemet deklaráló vagy az abból származtatott osztály kódja hozzáférhet az elemhez |
Interfészek Osztályok Struktúrák Eljárások Tulajdonságok Tagváltozók Állandók Enumerálások esemény Külső deklarációk Delegáltak |
Osztály |
Friend |
Összeszerelés: A barátelemet deklaráló szerelvény kódja hozzáférhet hozzá |
Interfészek Modulok Osztályok Struktúrák Tagstruktúra Eljárások Tulajdonságok Tagváltozók Állandók Enumerálások esemény Külső deklarációk Delegáltak |
Forrásfájl Névtér Interfész Modul Osztály Struktúra |
Protected Friend |
Egyesítő Protected és Friend :A kód ugyanabban az osztályban vagy szerelvényben, mint egy védett barátelem, vagy az elem osztályából származtatott bármely osztályon belül hozzáférhet hozzá |
Interfészek Osztályok Struktúrák Eljárások Tulajdonságok Tagváltozók Állandók Enumerálások esemény Külső deklarációk Delegáltak |
Osztály |
Private |
Deklarációs környezet: A privát elemet deklaráló típusú kód, beleértve a tartalmazott típusok kódját is, hozzáférhet az elemhez |
Interfészek Osztályok Struktúrák Tagstruktúra Eljárások Tulajdonságok Tagváltozók Állandók Enumerálások esemény Külső deklarációk Delegáltak |
Modul Osztály Struktúra |
Private Protected |
A privát védett elemet deklaráló osztály kódja, vagy egy származtatott osztály kódja, amely ugyanabban a szerelvényben található, mint a bas osztály. | Interfészek Osztályok Struktúrák Eljárások Tulajdonságok Tagváltozók Állandók Enumerálások esemény Külső deklarációk Delegáltak |
Osztály |
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: