La façon la plus courante d'utiliser les espaces de noms VB.NET par la plupart programmeurs est de dire au compilateur quelles bibliothèques .NET Framework sont nécessaires pour un programme particulier. Lorsque vous choisissez un "modèle" pour votre projet (tel que "Application Windows Forms"), l'une des choses que vous choisissez est l'ensemble spécifique d'espaces de noms qui sera automatiquement référencé dans votre projet. Cela rend le code dans ces espaces de noms disponibles pour votre programme.
Par exemple, certains des espaces de noms et les fichiers réels dans lesquels ils se trouvent pour une application Windows Forms sont:
Système> dans System.dll
Système. Données> dans le système. Data.dll
Système. Déploiement> Système. Deployment.dll
Système. Dessin> Système. Drawing.dll
Système. Les fenêtres. Formulaires> Système. Les fenêtres. Forms.dll
Vous pouvez voir (et modifier) les espaces de noms et les références de votre projet dans les propriétés du projet sous le Les références languette.
Cette façon de penser les espaces de noms les fait ressembler à la "bibliothèque de code", mais ce n'est qu'une partie de l'idée. Le véritable avantage des espaces de noms est l'organisation.
La plupart d'entre nous n'aurons pas la chance d'établir une nouvelle hiérarchie d'espace de noms car cela n'est généralement fait qu'une seule fois "au début" pour une bibliothèque de code volumineuse et compliquée. Mais, ici, vous apprendrez à interpréter les espaces de noms que l'on vous demandera d'utiliser dans de nombreuses organisations.
Que font les espaces de noms
Les espaces de noms permettent d'organiser les dizaines de milliers d'objets .NET Framework et tous les objets que les programmeurs VB créent également dans les projets, afin qu'ils ne se heurtent pas.
Par exemple, si vous recherchez .NET pour un Couleur objet, vous en trouvez deux. Il y a un Couleur objet dans les deux:
Système. Dessin
Système. Les fenêtres. Médias
Si vous ajoutez un Importations pour les deux espaces de noms (une référence peut également être nécessaire pour les propriétés du projet) ...
Système d'importation. Dessin
Système d'importation. Les fenêtres. Médias
... puis une déclaration comme ...
Dim a As Color
... sera signalé comme une erreur avec la note, "La couleur est ambiguë" et .NET indiquera que les deux espaces de noms contiennent un objet avec ce nom. Ce type d'erreur est appelé «collision de noms».
C'est la vraie raison des «espaces de noms» et c'est aussi la façon dont les espaces de noms sont utilisés dans d'autres technologies (comme XML). Les espaces de noms permettent d'utiliser le même nom d'objet, tel que Couleur, quand le nom rentre et garde les choses organisées. Vous pouvez définir un Couleur dans votre propre code et gardez-le distinct de ceux de .NET (ou du code d'autres programmeurs).
Espace de noms MyColor
Couleur de classe publique
Couleur secondaire ()
' Faire quelque chose
End Sub
Fin de classe
End Namespace
Vous pouvez également utiliser le Couleur objecter ailleurs dans votre programme comme ceci:
Dim c comme nouveau MyColor. Couleur
c. Couleur()
Avant d'entrer dans certaines des autres fonctionnalités, sachez que chaque projet est contenu dans un espace de noms. VB.NET utilise le nom de votre projet (WindowsApplication1 pour une application de formulaires standard si vous ne la modifiez pas) comme espace de noms par défaut. Pour voir cela, créez un nouveau projet (nous avons utilisé le nom NSProj et consultez l'outil Explorateur d'objets):
- Cliquez sur Ici pour afficher l'illustration
- Clique le Retour bouton de votre navigateur pour revenir
L'Explorateur d'objets affiche votre nouvel espace de noms de projet (et les objets définis automatiquement à l'intérieur) ainsi que les espaces de noms .NET Framework. Cette capacité de VB.NET à rendre vos objets égaux aux objets .NET est l'une des clés de la puissance et de la flexibilité. Par exemple, c'est pourquoi Intellisense affichera vos propres objets dès que vous les aurez définis.
Pour donner un coup de pouce, définissons un nouveau projet (nous avons nommé le nôtre NewNSProj dans la même solution (utiliser Fichier > Ajouter > Nouveau projet ...) et coder un nouvel espace de noms dans ce projet. Et juste pour le rendre plus amusant, mettons le nouvel espace de noms dans un nouveau module (nous l'avons nommé NewNSMod). Et comme un objet doit être codé en tant que classe, nous avons également ajouté un bloc de classe (nommé NewNSObj). Voici le code et l'Explorateur de solutions pour montrer comment ils s'imbriquent:
- Cliquez sur Ici pour afficher l'illustration
- Clique le Retour bouton de votre navigateur pour revenir
Étant donné que votre propre code est «tout comme le code Framework», il est nécessaire d'ajouter une référence à NewNSMod dans NSProj pour utiliser l'objet dans l'espace de noms, même s'ils sont dans la même solution. Une fois cela fait, vous pouvez déclarer un objet dans NSProj sur la base de la méthode NewNSMod. Vous devez également "construire" le projet afin qu'un objet réel existe à référencer.
Dim o comme nouveau NewNSProj. AVBNS.NewNSMod. NewNSObj
o. AVBNSMethod ()
C'est tout à fait un Faible déclaration cependant. Nous pouvons raccourcir cela en utilisant un Importations avec un alias.
Importations NS = NewNSProj. AVBNS.NewNSMod. NewNSObj
...
Dim o comme nouveau NS
o. AVBNSMethod ()
Cliquez sur le bouton Exécuter pour afficher MsgBox de l'espace de noms AVBNS, "Hé! Ça a marché!"
Quand et pourquoi utiliser les espaces de noms
Jusqu'à présent, tout a vraiment été syntaxe - les codage règles que vous devez suivre pour utiliser les espaces de noms. Mais pour vraiment en profiter, il faut deux choses:
- Une exigence pour l'organisation de l'espace de noms en premier lieu. Vous avez besoin de plus qu'un simple projet "Hello World" avant que l'organisation des espaces de noms commence à porter ses fruits.
- Un plan pour les utiliser.
En général, Microsoft vous recommande d'organiser le code de votre organisation en combinant le nom de votre entreprise avec le nom du produit.
Ainsi, par exemple, si vous êtes l'architecte logiciel en chef de la chirurgie plastique Nose Knows du Dr No, vous pouvez organiser vos espaces de noms comme ...
DRNon
Consultant
ReadTheirWatchNChargeEm
TellEmNuthin
Chirurgie
ElephantMan
MyEyeLidsRGone
Ceci est similaire à l'organisation de .NET ...
Objet
Système
Coeur
IO
Linq
Les données
Odbc
Sql
Les espaces de noms à plusieurs niveaux sont obtenus en imbriquant simplement les blocs d'espace de noms.
Espace de noms DRNo
Chirurgie de l'espace de noms
Espace de noms MyEyeLidsRGone
«Code VB
End Namespace
End Namespace
End Namespace
ou
Espace de noms DRNo. Chirurgie. MyEyeLidsRGone
«Code VB
End Namespace