Share via


Åtkomstnivåer i Visual Basic

Åtkomstnivån för ett deklarerat element är omfattningen av möjligheten att komma åt det, dvs. vilken kod som har behörighet att läsa det eller skriva till det. Detta bestäms inte bara av hur du deklarerar själva elementet, utan även av åtkomstnivån för elementets container. Kod som inte kan komma åt ett innehållande element kan inte komma åt något av dess inneslutna element, även de som deklareras som Public. En variabel i en Private struktur kan till exempel Public nås inifrån klassen som innehåller strukturen, men inte utanför den klassen.

Offentliga

Nyckelordet Offentligt i deklarationsinstrukmentet anger att elementet kan nås från kod var som helst i samma projekt, från andra projekt som refererar till projektet och från alla sammansättningar som skapats från projektet. Följande kod visar en exempeldeklaration Public :

Public Class ClassForEverybody

Du kan bara använda Public på modul-, gränssnitts- eller namnområdesnivå. Det innebär att du kan deklarera ett offentligt element på nivån för en källfil eller ett namnområde, eller i ett gränssnitt, en modul, en klass eller en struktur, men inte i en procedur.

Skyddad

Nyckelordet Skyddat i deklarationssatsen anger att elementet endast kan nås från samma klass eller från en klass som härletts från den här klassen. Följande kod visar en exempeldeklaration Protected :

Protected Class ClassForMyHeirs

Du kan bara använda Protected på klassnivå och endast när du deklarerar en medlem i en klass. Det innebär att du kan deklarera ett skyddat element i en klass, men inte på nivån för en källfil eller ett namnområde, eller i ett gränssnitt, en modul, en struktur eller en procedur.

Vän

Nyckelordet Vän i deklarationssatsen anger att elementet kan nås från samma sammansättning, men inte utanför sammansättningen. Följande kod visar en exempeldeklaration Friend :

Friend stringForThisProject As String

Du kan bara använda Friend på modul-, gränssnitts- eller namnområdesnivå. Det innebär att du kan deklarera ett vänelement på nivån för en källfil eller ett namnområde, eller i ett gränssnitt, en modul, en klass eller en struktur, men inte i en procedur.

Skyddad vän

Nyckelordskombinationen Skyddad vän i deklarationsinstruktionen anger att elementet kan nås antingen från härledda klasser eller från samma sammansättning eller båda. Följande kod visar en exempeldeklaration Protected Friend :

Protected Friend stringForProjectAndHeirs As String

Du kan bara använda Protected Friend på klassnivå och endast när du deklarerar en medlem i en klass. Det innebär att du kan deklarera ett skyddat vänelement i en klass, men inte på nivån för en källfil eller ett namnområde, eller i ett gränssnitt, en modul, en struktur eller en procedur.

Privat

Nyckelordet Privat i deklarationssatsen anger att elementet endast kan nås från samma modul, klass eller struktur. Följande kod visar en exempeldeklaration Private :

Private _numberForMeOnly As Integer

Du kan bara använda Private på modulnivå. Det innebär att du kan deklarera ett privat element i en modul, klass eller struktur, men inte på nivån för en källfil eller ett namnområde, i ett gränssnitt eller i en procedur.

På modulnivå motsvarar instruktionen Dim utan nyckelord på åtkomstnivå en Private deklaration. Du kanske vill använda nyckelordet Private för att göra koden enklare att läsa och tolka.

Privat skyddad

Den privata skyddade nyckelordskombinationen i deklarationsinstruktionen anger att elementet endast kan nås från samma klass, samt från härledda klasser som finns i samma sammansättning som den innehållande klassen. Åtkomstmodifieraren Private Protected stöds från och med Visual Basic 15.5.

I följande exempel visas en Private Protected deklaration:

Private Protected internalValue As Integer

Du kan bara deklarera ett Private Protected element i en klass. Du kan inte deklarera den i ett gränssnitt eller en struktur, och du kan inte heller deklarera den på nivån för en källfil eller ett namnområde, i ett gränssnitt eller en struktur eller i en procedur.

Åtkomstmodifieraren Private Protected stöds av Visual Basic 15.5 och senare. Om du vill använda det lägger du till följande element i visual basic-projektfilen (*.vbproj). Så länge Visual Basic 15.5 eller senare har installerats på systemet kan du dra nytta av alla språkfunktioner som stöds av den senaste versionen av Visual Basic-kompilatorn:

<PropertyGroup>
   <LangVersion>latest</LangVersion>
</PropertyGroup>

Om du vill använda Private Protected åtkomstmodifieraren måste du lägga till följande element i visual basic-projektfilen (*.vbproj):

<PropertyGroup>
   <LangVersion>15.5</LangVersion>
</PropertyGroup>

Mer information finns i ställa in visual basic-språkversionen.

Åtkomstmodifierare

Nyckelorden som anger åtkomstnivå kallas åtkomstmodifierare. I följande tabell jämförs åtkomstmodifierarna:

Åtkomstmodifierare Åtkomstnivå beviljad Element som du kan deklarera med den här åtkomstnivån Deklarationskontext där du kan använda den här modifieraren
Public Obegränsad:

All kod som kan se ett offentligt element kan komma åt det
Gränssnitt

Moduler

Klasser

Strukturer

Strukturmedlemmar

Förfaranden

Egenskaper

Medlemsvariabler

Konstanter

Uppräkningar

Händelser

Externa deklarationer

Delegeringar
Källfil

Namnområde

Gränssnitt

Modul

Klass

Struktur
Protected Härledning:

Kod i klassen som deklarerar ett skyddat element, eller en klass som härleds från det, kan komma åt elementet
Gränssnitt

Klasser

Strukturer

Förfaranden

Egenskaper

Medlemsvariabler

Konstanter

Uppräkningar

Händelser

Externa deklarationer

Delegeringar
Klass
Friend Församlingen:

Kod i sammansättningen som deklarerar att ett vän-element kan komma åt det
Gränssnitt

Moduler

Klasser

Strukturer

Strukturmedlemmar

Förfaranden

Egenskaper

Medlemsvariabler

Konstanter

Uppräkningar

Händelser

Externa deklarationer

Delegeringar
Källfil

Namnområde

Gränssnitt

Modul

Klass

Struktur
Protected Friend Union of Protected och Friend:

Kod i samma klass eller samma sammansättning som ett skyddat vän-element, eller inom någon klass som härleds från elementets klass, kan komma åt den
Gränssnitt

Klasser

Strukturer

Förfaranden

Egenskaper

Medlemsvariabler

Konstanter

Uppräkningar

Händelser

Externa deklarationer

Delegeringar
Klass
Private Deklarationskontext:

Kod i den typ som deklarerar ett privat element, inklusive kod i inneslutna typer, kan komma åt elementet
Gränssnitt

Klasser

Strukturer

Strukturmedlemmar

Förfaranden

Egenskaper

Medlemsvariabler

Konstanter

Uppräkningar

Händelser

Externa deklarationer

Delegeringar
Modul

Klass

Struktur
Private Protected Kod i klassen som deklarerar ett privat skyddat element eller kod i en härledd klass som finns i samma sammansättning som basklassen. Gränssnitt

Klasser

Strukturer

Förfaranden

Egenskaper

Medlemsvariabler

Konstanter

Uppräkningar

Händelser

Externa deklarationer

Delegeringar
Klass

Se även