Livelli di accesso in Visual Basic

Il livello di accesso di un elemento dichiarato è l'entità della possibilità di accedervi, ad esempio il codice autorizzato a leggerlo o a scrivervi. Questo è determinato non solo dal modo in cui si dichiara l'elemento stesso, ma anche dal livello di accesso del contenitore dell'elemento. Il codice che non può accedere a un elemento contenitore non può accedere ad alcun elemento contenuto, anche a quelli dichiarati come Public . Ad esempio, è possibile accedere a una variabile in una struttura dall'interno della classe che contiene la struttura, ma Public Private non dall'esterno di tale classe.

Pubblici

La parola chiave Public nell'istruzione di dichiarazione specifica che è possibile accedere all'elemento dal codice in qualsiasi punto dello stesso progetto, da altri progetti che fanno riferimento al progetto e da qualsiasi assembly compilato dal progetto. Il codice seguente illustra una dichiarazione di Public esempio:

Public Class ClassForEverybody

È possibile usare Public solo a livello di modulo, interfaccia o spazio dei nomi. Ciò significa che è possibile dichiarare un elemento pubblico a livello di un file o di uno spazio dei nomi di origine o all'interno di un'interfaccia, un modulo, una classe o una struttura, ma non in una routine.

Protetta

La parola chiave Protected nell'istruzione di dichiarazione specifica che è possibile accedere all'elemento solo dall'interno della stessa classe o da una classe derivata da questa classe. Il codice seguente illustra una dichiarazione di Protected esempio:

Protected Class ClassForMyHeirs

È possibile usare Protected solo a livello di classe e solo quando si dichiara un membro di una classe. Ciò significa che è possibile dichiarare un elemento protetto in una classe, ma non a livello di un file o di uno spazio dei nomi di origine o all'interno di un'interfaccia, un modulo, una struttura o una routine.

Friend

La parola chiave Friend nell'istruzione di dichiarazione specifica che è possibile accedere all'elemento dall'interno dello stesso assembly, ma non dall'esterno dell'assembly. Il codice seguente illustra una dichiarazione di Friend esempio:

Friend stringForThisProject As String

È possibile usare Friend solo a livello di modulo, interfaccia o spazio dei nomi. Ciò significa che è possibile dichiarare un elemento Friend a livello di un file o di uno spazio dei nomi di origine o all'interno di un'interfaccia, un modulo, una classe o una struttura, ma non in una routine.

Protected Friend

La combinazione di parole chiave Protected Friend nell'istruzione di dichiarazione specifica che è possibile accedere all'elemento da classi derivate, dall'interno dello stesso assembly o da entrambi. Il codice seguente illustra una dichiarazione di Protected Friend esempio:

Protected Friend stringForProjectAndHeirs As String

È possibile usare Protected Friend solo a livello di classe e solo quando si dichiara un membro di una classe. Ciò significa che è possibile dichiarare un elemento Friend protetto in una classe, ma non a livello di un file o di uno spazio dei nomi di origine o all'interno di un'interfaccia, un modulo, una struttura o una routine.

Privati

La parola chiave Private nell'istruzione di dichiarazione specifica che è possibile accedere all'elemento solo dall'interno dello stesso modulo, classe o struttura. Il codice seguente illustra una dichiarazione di Private esempio:

Private _numberForMeOnly As Integer

Si può usare Private solo a livello di modulo. Ciò significa che è possibile dichiarare un elemento privato all'interno di un modulo, una classe o una struttura, ma non a livello di un file o di uno spazio dei nomi di origine, all'interno di un'interfaccia o in una routine.

A livello di modulo, Dim l'istruzione senza parole chiave del livello di accesso equivale a una dichiarazione Private . È tuttavia possibile usare la parola chiave per semplificare la lettura e Private l'interpretazione del codice.

Private Protected

La combinazione di parole chiave Private Protected nell'istruzione di dichiarazione specifica che è possibile accedere all'elemento solo dall'interno della stessa classe, nonché dalle classi derivate presenti nello stesso assembly della classe contenitore. Il Private Protected modificatore di accesso è supportato a partire da Visual Basic 15.5.

Nell'esempio seguente viene illustrata Private Protected una dichiarazione :

Private Protected internalValue As Integer

È possibile dichiarare un elemento Private Protected solo all'interno di una classe. Non è possibile dichiararlo all'interno di un'interfaccia o di una struttura, né a livello di file o spazio dei nomi di origine, all'interno di un'interfaccia o di una struttura o in una routine.

Il Private Protected modificatore di accesso è supportato da Visual Basic 15.5 e versioni successive. Per usarlo, aggiungere l'elemento seguente al file Visual Basic progetto * (con estensione vbproj). Fino a quando Visual Basic 15.5 o versione successiva è installato nel sistema, consente di sfruttare tutte le funzionalità del linguaggio supportate dalla versione più recente del compilatore Visual Basic:

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

Per usare il modificatore di accesso, è necessario aggiungere l'elemento seguente Private Protected al file Visual Basic progetto * (con estensione vbproj):

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

Per altre informazioni, vedere Impostazione della versione Visual Basic lingua.

Modificatori di accesso

Le parole chiave che specificano il livello di accesso sono denominate modificatori di accesso. Nella tabella seguente vengono confrontati i modificatori di accesso:

Modificatore di accesso Livello di accesso concesso Elementi che è possibile dichiarare con questo livello di accesso Contesto di dichiarazione in cui è possibile usare questo modificatore
Public Unrestricted:

Qualsiasi codice in grado di visualizzare un elemento pubblico può accedervi
Interfacce

Moduli

Classi

Strutture

Membri della struttura

Procedure

Proprietà

Variabili membro

Costanti

Enumerazioni

Eventi

Dichiarazioni esterne

Delegati
File di origine

Spazio dei nomi

Interfaccia

Modulo

Classe

Struttura
Protected Derivazione:

Il codice nella classe che dichiara un elemento protetto o una classe derivata da esso può accedere all'elemento
Interfacce

Classi

Strutture

Procedure

Proprietà

Variabili membro

Costanti

Enumerazioni

Eventi

Dichiarazioni esterne

Delegati
Classe
Friend Assembly:

Il codice nell'assembly che dichiara un elemento Friend può accedervi
Interfacce

Moduli

Classi

Strutture

Membri della struttura

Procedure

Proprietà

Variabili membro

Costanti

Enumerazioni

Eventi

Dichiarazioni esterne

Delegati
File di origine

Spazio dei nomi

Interfaccia

Modulo

Classe

Struttura
Protected Friend Unione di Protected e Friend :

Il codice nella stessa classe o nello stesso assembly di un elemento Friend protetto o all'interno di qualsiasi classe derivata dalla classe dell'elemento può accedervi
Interfacce

Classi

Strutture

Procedure

Proprietà

Variabili membro

Costanti

Enumerazioni

Eventi

Dichiarazioni esterne

Delegati
Classe
Private Contesto della dichiarazione:

Il codice nel tipo che dichiara un elemento privato, incluso il codice all'interno di tipi contenuti, può accedere all'elemento
Interfacce

Classi

Strutture

Membri della struttura

Procedure

Proprietà

Variabili membro

Costanti

Enumerazioni

Eventi

Dichiarazioni esterne

Delegati
Modulo

Classe

Struttura
Private Protected Codice nella classe che dichiara un elemento protetto privato o codice in una classe derivata presente nello stesso assembly della classe bas. Interfacce

Classi

Strutture

Procedure

Proprietà

Variabili membro

Costanti

Enumerazioni

Eventi

Dichiarazioni esterne

Delegati
Classe

Vedi anche