Utilizzo degli spazi dei nomi in VB.NET

Il modo più comune di utilizzare gli spazi dei nomi VB.NET è la maggior parte programmatori è dire al compilatore quali librerie .NET Framework sono necessarie per un determinato programma. Quando scegli un "modello" per il tuo progetto (come "Applicazione Windows Form") una delle cose che stai scegliendo è il set specifico di spazi dei nomi a cui verrà automaticamente fatto riferimento nel tuo progetto. Ciò rende il codice in tali spazi dei nomi disponibile per il programma.

Ad esempio, alcuni degli spazi dei nomi e dei file effettivi in ​​cui si trovano per un'applicazione Windows Form sono:

Sistema> in System.dll
Sistema. Dati> nel sistema. Data.dll
Sistema. Distribuzione> Sistema. Deployment.dll
Sistema. Disegno> Sistema. Drawing.dll
Sistema. Finestre. Moduli> Sistema. Finestre. Forms.dll

Puoi vedere (e cambiare) gli spazi dei nomi e i riferimenti per il tuo progetto nelle proprietà del progetto sotto il Riferimenti scheda.

Questo modo di pensare agli spazi dei nomi fa sembrare loro la stessa cosa della "libreria di codici", ma questa è solo una parte dell'idea. Il vero vantaggio degli spazi dei nomi è l'organizzazione.

instagram viewer

La maggior parte di noi non avrà la possibilità di stabilire una nuova gerarchia dello spazio dei nomi perché generalmente viene eseguita una sola volta "all'inizio" per una libreria di codici ampia e complicata. Ma qui imparerai come interpretare gli spazi dei nomi che ti verrà chiesto di usare in molte organizzazioni.

Cosa fanno gli spazi dei nomi

Gli spazi dei nomi consentono di organizzare decine di migliaia di oggetti .NET Framework e tutti gli oggetti che i programmatori VB creano anche nei progetti, in modo che non si scontrino.

Ad esempio, se si cerca .NET in a Colore oggetto, ne trovi due. C'è un Colore oggetto in entrambi:

Sistema. Disegno
Sistema. Finestre. Media

Se aggiungi un importazioni istruzione per entrambi gli spazi dei nomi (potrebbe essere necessario un riferimento anche per le proprietà del progetto) ...

Sistema di importazione. Disegno
Sistema di importazione. Finestre. Media

... quindi una dichiarazione come ...

Dim a As Color

... verrà contrassegnato come errore con la nota "Il colore è ambiguo" e .NET indicherà che entrambi gli spazi dei nomi contengono un oggetto con quel nome. Questo tipo di errore è chiamato "collisione del nome".

Questa è la vera ragione per "spazi dei nomi" ed è anche il modo in cui gli spazi dei nomi vengono utilizzati in altre tecnologie (come XML). Gli spazi dei nomi consentono di utilizzare lo stesso nome oggetto, ad esempio Colore, quando il nome si adatta e mantiene le cose organizzate. È possibile definire a Colore oggetto nel proprio codice e tenerlo distinto da quelli in .NET (o dal codice di altri programmatori).

Spazio dei nomi MyColor
Colore di classe pubblica
Colore secondario ()
' Fare qualcosa
End Sub
End Class
End Namespace

Puoi anche usare il Colore oggetto da qualche altra parte nel tuo programma in questo modo:

Dim c come nuovo MyColor. Colore
c. Colore()

Prima di entrare in alcune delle altre funzionalità, tenere presente che ogni progetto è contenuto in uno spazio dei nomi. VB.NET utilizza il nome del tuo progetto (WindowsApplication1 per un'applicazione di moduli standard se non viene modificata) come spazio dei nomi predefinito. Per vedere questo, crea un nuovo progetto (abbiamo usato il nome NSProj e controlla lo strumento Browser oggetti):

  1. Clic Qui per visualizzare l'illustrazione
  2. Clicca il Indietro pulsante sul browser per tornare

Il browser degli oggetti mostra il tuo nuovo spazio dei nomi del progetto (e gli oggetti definiti automaticamente in esso) insieme agli spazi dei nomi di .NET Framework. Questa capacità di VB.NET di rendere i tuoi oggetti uguali agli oggetti .NET è una delle chiavi della potenza e della flessibilità. Ad esempio, questo è il motivo per cui Intellisense mostrerà i tuoi oggetti non appena li definisci.

Per dare il massimo, definiamo un nuovo progetto (Abbiamo chiamato il nostro NewNSProj nella stessa soluzione (usare File > Inserisci > Nuovo progetto ...) e codificare un nuovo spazio dei nomi in quel progetto. E solo per renderlo più divertente, mettiamo il nuovo spazio dei nomi in un nuovo modulo (lo abbiamo chiamato NewNSMod). E poiché un oggetto deve essere codificato come una classe, abbiamo anche aggiunto un blocco di classe (denominato NewNSObj). Ecco il codice e Esplora soluzioni per mostrare come si adatta insieme:

  1. Clic Qui per visualizzare l'illustrazione
  2. Clicca il Indietro pulsante sul browser per tornare

Poiché il tuo codice è "proprio come il codice Framework", è necessario aggiungere un riferimento a NewNSMod nel NSProj per utilizzare l'oggetto nello spazio dei nomi, anche se si trovano nella stessa soluzione. Una volta fatto, puoi dichiarare un oggetto in NSProj basato sul metodo in NewNSMod. È inoltre necessario "costruire" il progetto in modo che esista un oggetto reale a cui fare riferimento.

Dim o As New NewNSProj. AVBNS.NewNSMod. NewNSObj
o. AVBNSMethod ()

Questo è piuttosto un fioco dichiarazione però. Possiamo accorciarlo usando un importazioni dichiarazione con un alias.

Importa NS = NewNSProj. AVBNS.NewNSMod. NewNSObj
...
Dim o come nuovo NS
o. AVBNSMethod ()

Facendo clic sul pulsante Esegui viene visualizzato il MsgBox dallo spazio dei nomi AVBNS, "Ehi! Ha funzionato!"

Quando e perché usare gli spazi dei nomi

Tutto finora è stato davvero appena sintassi - il codifica regole che devi seguire usando gli spazi dei nomi. Ma per trarne davvero vantaggio, hai bisogno di due cose:

  • Un requisito per l'organizzazione dello spazio dei nomi in primo luogo. Hai bisogno di qualcosa di più di un semplice progetto "Hello World" prima che l'organizzazione degli spazi dei nomi inizi a dare i suoi frutti.
  • Un piano per usarli.

In generale, Microsoft ti consiglia di organizzare il codice della tua organizzazione usando una combinazione del nome della tua azienda con il nome del prodotto.

Quindi, ad esempio, se sei l'architetto capo del software per la chirurgia plastica Nose Knows del Dr. No, allora potresti voler organizzare gli spazi dei nomi come ...

DRNo
consulenza
ReadTheirWatchNChargeEm
TellEmNuthin
Chirurgia
ElephantMan
MyEyeLidsRGone

Questo è simile all'organizzazione di .NET ...

Oggetto
Sistema
Nucleo
IO
Linq
Dati
Odbc
Sql

Gli spazi dei nomi multilivello si ottengono semplicemente annidando i blocchi dello spazio dei nomi.

Spazio dei nomi DRNo
Chirurgia dello spazio dei nomi
Spazio dei nomi MyEyeLidsRGone
"Codice VB
End Namespace
End Namespace
End Namespace

o

Spazio dei nomi DRNo. Chirurgia. MyEyeLidsRGone
"Codice VB
End Namespace
instagram story viewer