Livelli di accesso in Visual Basic

Il livello di accesso di un elemento dichiarato indica l'ampiezza della capacità di accesso all'elemento, ossia specifica le parti di codice che dispongono delle autorizzazioni di lettura o scrittura sull'elemento. Questo valore dipende non solo dal modo in cui viene dichiarato l'elemento stesso ma anche dal livello di accesso del relativo contenitore. Un codice che non può accedere a un elemento contenitore non può accedere ai relativi elementi contenuti, inclusi quelli dichiarati come Public. Ad esempio, è possibile accedere a una variabile Public in una struttura Private dall'interno della classe contenente la struttura, ma non dall'esterno della classe.

Public

La parola chiave Public (Visual Basic) nell'istruzione di dichiarazione indica che è possibile accedere agli elementi da qualsiasi codice all'interno dello stesso progetto, da altri progetti che fanno riferimento al progetto e da qualsiasi assembly compilato dal progetto. Nel codice riportato di seguito è illustrato un esempio di dichiarazione Public.

Public Class classForEverybody

È possibile utilizzare la parola chiave Public solo a livello di modulo, di interfaccia o di spazio dei nomi. Questo significa che è possibile dichiarare un elemento Public a livello di file di origine o di spazio dei nomi oppure all'interno di un'interfaccia, di un modulo, di una classe o di una struttura, ma non in una routine.

Protected

La parola chiave Protected (Visual Basic) nell'istruzione di dichiarazione indica che è possibile accedere agli elementi solo dall'interno della stessa classe o da una classe da essa derivata. Nel codice riportato di seguito è illustrato un esempio di dichiarazione Protected.

Protected Class classForMyHeirs

È possibile utilizzare la parola chiave Protected solo a livello di classe e solo quando si dichiara un membro di una classe. Questo significa che è possibile dichiarare un elemento Protected in una classe ma non a livello di file di origine o di spazio dei nomi né all'interno di un'interfaccia, di un modulo, di una struttura o di una routine.

Friend

La parola chiave Friend (Visual Basic) nell'istruzione di dichiarazione indica che è possibile accedere agli elementi dall'interno dello stesso assembly, ma non dall'esterno dell'assembly. Nel codice riportato di seguito è illustrato un esempio di dichiarazione Friend.

Friend stringForThisProject As String

È possibile utilizzare la parola chiave Friend solo a livello di modulo, di interfaccia o di spazio dei nomi. Questo significa che è possibile dichiarare un elemento Friend a livello di file di origine o di spazio dei nomi oppure all'interno di un'interfaccia, di un modulo, di una classe o di una struttura, ma non in una routine.

Protected Friend

L'utilizzo di entrambe le parole chiave Protected e Friend nell'istruzione di dichiarazione indica che è possibile accedere agli elementi dalle classi derivate e/o dall'interno dello stesso assembly. Nel codice riportato di seguito è illustrato un esempio di dichiarazione Protected Friend.

Protected Friend stringForProjectAndHeirs As String

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

Private

La parola chiave Private (Visual Basic) nell'istruzione di dichiarazione indica che è possibile accedere agli elementi solo dall'interno dello stesso modulo, classe o struttura. Nel codice riportato di seguito è illustrato un esempio di dichiarazione Private.

Private numberForMeOnly As Integer

È possibile utilizzare la parola chiave Private solo a livello di modulo. Questo significa che è possibile dichiarare un elemento Private all'interno di un modulo, di una classe o di una struttura ma non a livello di file di origine o di spazio dei nomi né dall'interno di un'interfaccia o di una routine.

A livello di modulo, l'istruzione Dim senza alcuna parola chiave relativa al livello di accesso equivale a una dichiarazione Private. È possibile comunque utilizzare la parola chiave Private per rendere più semplice la lettura e l'interpretazione del codice.

Modificatori di accesso

Le parole chiave che specificano il livello di accesso sono dette modificatori di accesso. Nella seguente tabella viene effettuato un confronto tra i vari modificatori di accesso.

Modificatore di accesso

Livello di accesso concesso

Elementi che è possibile dichiarare con questo livello di accesso

Contesto della dichiarazione all'interno del quale è possibile utilizzare questo modificatore

Public

Illimitato

L'accesso a un elemento Public è consentito a qualsiasi parte di codice in cui tale elemento è visibile.

Interfacce

Moduli

Classi

Strutture

Membri di struttura

Routine

Proprietà

Variabili membro

Costanti

Enumerazioni

Eventi

Dichiarazioni esterne

Delegati

File di origine

Spazio dei nomi

Interfaccia

Modulo

Classe

Struttura

Protected

Derivazionale

L'accesso a un elemento Protected è consentito al codice della classe che dichiara tale elemento o di una classe da essa derivata.

Interfacce

Classi

Strutture

Routine

Proprietà

Variabili membro

Costanti

Enumerazioni

Eventi

Dichiarazioni esterne

Delegati

Classe

Friend

Assembly:

L'accesso a un elemento Friend è consentito al codice dell'assembly che dichiara tale elemento.

Interfacce

Moduli

Classi

Strutture

Membri di struttura

Routine

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

L'accesso a un elemento Protected Friend è consentito al codice della stessa classe o dello stesso assembly di tale elemento oppure al codice di una qualsiasi classe derivata dalla classe dell'elemento.

Interfacce

Classi

Strutture

Routine

Proprietà

Variabili membro

Costanti

Enumerazioni

Eventi

Dichiarazioni esterne

Delegati

Classe

Private

Contesto della dichiarazione

L'accesso a un elemento Private è consentito al codice del tipo che dichiara tale elemento, incluso il codice dei tipi contenuti.

Interfacce

Classi

Strutture

Membri di struttura

Routine

Proprietà

Variabili membro

Costanti

Enumerazioni

Eventi

Dichiarazioni esterne

Delegati

Modulo

Classe

Struttura

Vedere anche

Attività

Procedura: controllare la disponibilità di una variabile (Visual Basic)

Riferimenti

Istruzione Dim (Visual Basic)

Static (Visual Basic)

Concetti

Nomi di elementi dichiarati (Visual Basic)

Caratteristiche di elementi dichiarati (Visual Basic)

Durata in Visual Basic

Ambito in Visual Basic

Variabili in Visual Basic

Dichiarazione di variabili in Visual Basic

Altre risorse

Riferimenti a elementi dichiarati (Visual Basic)