Namespace, instruction
Déclare le nom d'un espace de noms et provoque la compilation du code source qui suit la déclaration dans cet espace de noms.
Namespace { name | name.name }
[ componenttypes ]
End Namespace
Éléments
name
Obligatoire. Nom univoque d'identification de l'espace de noms. Doit être un identificateur Visual Basic valide. Pour plus d'informations, consultez Noms d'éléments déclarés (Visual Basic).componenttypes
Facultatif. Éléments qui composent l'espace de noms. Ceux-ci incluent (sans s'y limiter) les énumérations, structures, interfaces, classes, modules, délégués et d'autres espaces de noms.End Namespace
Met fin à un bloc Namespace.
Notes
Les espaces de noms sont utilisés comme un système d'organisation. Ils permettent de classer et de présenter des éléments de programmation exposés à d'autres programmes et applications. Notez qu'un espace de noms n'est pas un type dans le sens où une classe ou une structure l'est ; vous ne pouvez pas déclarer un élément de programmation comme ayant le type de données d'un espace de noms.
Vous pouvez utiliser une instruction Namespace uniquement au niveau du fichier ou de l'espace de noms. Cela signifie que le contexte de déclaration pour un espace de noms doit être un fichier source ou un autre espace de noms, et ne peut pas être une classe, une structure, un module, une interface ou une procédure. Pour plus d'informations, consultez Contextes de déclaration et niveaux d'accès par défaut (Visual Basic).
Les espaces de noms sont traités comme s'ils disposent d'un niveau d'accès Public. Un espace de noms peut être accessible à partir du code depuis n'importe quel emplacement dans le même projet, dans d'autres projets qui référencent le projet et dans un assembly généré à partir du projet.
Règles
Attributs. Vous ne pouvez pas appliquer d'attributs à un espace de noms. Un attribut fournit des informations aux métadonnées de l'assembly, qui ne sont pas explicites pour les classifieurs source tels que les espaces de noms.
Modificateurs. Vous ne pouvez pas appliquer de modificateurs d'accès ou de procédure, ou d'autres modificateurs, à un espace de noms. L'espace de noms n'étant pas un type, ces modificateurs ne sont pas explicites.
Imbrication. Vous pouvez déclarer un espace de noms dans un autre. Aucune limite stricte n'est appliquée aux niveaux d'imbrication que vous pouvez déclarer, mais n'oubliez pas qu'e tout autre code qui accède aux éléments déclarés dans l'espace de noms le plus profond doit utiliser une chaîne de qualification qui contient tout les noms d'espace de noms dans la hiérarchie d'imbrication.
Comportement
Niveau d'accès. Les éléments de programmation déclarés au niveau de l'espace de noms, c'est-à-dire dans un espace de noms mais pas à l'intérieur d'un autre élément, peuvent disposer d'un accès Public ou Friend. S'il n'est pas spécifié, le niveau d'accès de cet élément prend par défaut la valeur Friend. Les éléments que vous pouvez déclarer au niveau de l'espace de noms sont les classes, structures, modules, interfaces, énumérations et délégués. Pour plus d'informations, consultez Contextes de déclaration et niveaux d'accès par défaut (Visual Basic).
Compilation. Tous les éléments de programmation déclarés après une instruction Namespace appartiennent à cet espace de noms. Visual Basic continue à compiler les éléments dans le dernier espace de noms déclaré jusqu'à ce qu'il rencontre une instruction End Namespace ou une autre instruction Namespace.
Ajout à un espace de noms. Si un espace de noms est déjà défini, même à l'extérieur de votre projet, vous pouvez y ajouter des éléments de programmation. Pour ce faire, vous utilisez une instruction Namespace pour demander à Visual Basic de compiler les éléments suivants dans cet espace de noms.
L'exemple suivant définit la structure d'une nouvelle classe de liste générique et l'ajoute à l'espace de noms System.Collections.Generic.
Namespace System.Collections.Generic Class specialSortedList(Of T) Inherits List(Of T) ' Insert code to define the special generic list class. End Class End Namespace
Espace de noms racine. Tous les espaces de noms contenus dans votre projet sont basés sur un espace de noms racine. Visual Studio assigne votre nom de projet en tant qu'espace de noms racine par défaut pour l'ensemble du code de votre projet. Par exemple, si votre projet est nommé Payroll, ses éléments de programmation appartiennent à l'espace de noms Payroll. Si vous déclarez Namespace funding, le nom complet de cet espace de noms est Payroll.funding.
Si vous souhaitez spécifier un espace de noms existant dans une instruction Namespace, comme dans l'exemple de classe de liste générique, vous pouvez affecter une valeur null à votre espace de noms racine. Pour ce faire, cliquez sur Propriétés du projet dans le menu Projet, puis supprimez l'entrée Espace de noms racine afin que la zone soit vide. Si vous ne le faites pas dans l'exemple de classe de liste générique, le compilateur Visual Basic prend System.Collections.Generic comme nouvel espace de noms dans le projet Payroll, avec le nom complet Payroll.System.Collections.Generic.
Vous pouvez également utiliser le mot clé Global pour faire référence aux éléments des espaces de noms définis à l'extérieur de votre projet. Cela vous permet de conserver votre nom de projet comme espace de noms racine. Cela réduit également le risque de fusion involontaire de vos éléments de programmation avec ceux des espaces de noms existants.
Dépannage
- Types non définis. L'espace de noms racine peut provoquer des concaténations inattendues des noms d'espace de noms. Si vous créez une référence aux espaces de noms définis à l'extérieur de votre projet, le compilateur Visual Basic peut les interpréter comme des espaces de noms imbriqués dans votre espace de noms racine. Dans ce cas, le compilateur ne reconnaît pas les types qui ont déjà été définis dans les espaces de noms externes. Pour éviter cela, affectez une valeur null à votre espace de noms racine, comme décrit dans « Espace de noms racine », ou utilisez le mot clé Global pour accéder aux éléments des espaces de noms externes.
Exemple
L'exemple suivant déclare deux espaces de noms, l'un imbriqué dans l'autre.
Namespace n1
Namespace n2
Class a
' Insert class definition.
End Class
End Namespace
End Namespace
L'exemple suivant déclare plusieurs espaces de noms imbriqués sur une seule ligne, et est équivalent à l'exemple précédent.
Namespace n1.n2
Class a
' Insert class definition.
End Class
End Namespace
L'exemple suivant accède à la classe définie dans les précédents exemples.
Dim instance As New n1.n2.a
Voir aussi
Référence
Imports, instruction (espace de noms et type .NET)