|
|
TUTORIEL TECHNOS .NET |
|
|
|
Les espaces de nom en C# |
Structure fondamentale de .NET, les espaces de nom servent à agréger les modules de sémantique proche en un même bloc plus accessible, et plus simple à diffuser.
(04/10/2005) |
|
À l'instar de Java, C# dispose
d'un large éventail de bibliothèques de base, implémentant les
méthodes les plus courantes, et facilitant de fait le travail
des développeurs. À la différence de Java, cependant, C# n'utilise
pas tant des bibliothèques spécifiques au langage, mais celles conçues
pour .NET, et par extension celles de tous les langages de l'architecture
de Microsoft.
Là où Java utilise des paquetages, comme com.sun.java.swing,
.NET base tout son système de classement des bibliothèques sur
la notion d'espace de nom, ou namespace. Un namespace,
physiquement, fonctionne de la même manière qu'un paquetage,
à savoir qu'il s'agit d'un dossier contenant des fichiers (les
bibliothèques). Il permet aux éditeurs tiers d'utiliser leurs
propres espaces de nom, et d'éviter que deux bibliothèques au
même nom partagent le même emplacement - donc les collisions.
Toutefois,
à la différence des paquetages, les namespaces ne renseignent
pas sur le stockage physique des fichiers sources. Là où com.sun.java.swing;*
correspond à la hiérarchie /com/sun/java/swing/*.*,
les espaces de noms de .NET, comme System.Windows.Forms,
pointent simplement vers le fichier du même nom dans le dossier
du framework .NET, en l'occurrence System.Windows.Forms.dll,
dans le dossier C:\WINNT\Microsoft.NET\Framework\numeroDeVersion\
par exemple.
Ce fichier est appelle un assemblage (assembly), car
il rassemble en un seul fichier un grand nombre de modules (le
résultat de base d'une compilation .NET), et défini le contexte
de ces modules. Malgré son extension, l'assemblage de .NET n'a
aucun rapport avec la DLL classique du système Windows - leur
fonctionnement diffère totalement.
En pratique
Accéder aux méthodes d'un espace de nom au sein d'un programme
C# est des plus simples : il suffit d'utiliser la directive
using au début du fichier .cs,
et de donner les espaces souhaités. En règle générale, aucun
programme C# ne peut se passer d'un appel vers l'espace System
:
using System;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;
Il peuvent également être directement appellé en un endroit
du code, mais cela est déconseillé.
Les espaces de noms permettent d'agréger les modules de même
sémantique, et autorisent donc les développeurs à créer leurs
propres espaces pour les applications, directement au sein du
fichier .cs. Le mot-clef est tout trouvé :
namespace
MonProjet {
using System;
using System.Windows.Forms;
...
public class MaClasse : Form {
Toute classe créée au sein de ce fichier fera partie intégrante
de l'espace de nom déclaré. Par ailleurs, les autres modules
ou espace de l'application pourront faire appel à cette classe,
et donc ses méthodes et attributs, au travers d'un appel d'espace
normal :
using MonProjet.MaClasse;
Notez qu'il est également possible d'avoir d'autres espaces
au sein d'un espace de nom, afin de fournir un degré plus précis
d'organisation au sein de l'espace racine.
namespace MaSociete {
namespace MaSection {
namespace MonProjet {
...
namespace UneAutreSection {
...
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Enfin, dans le cas d'espaces au nom très long comme ci-dessus,
il est également possible d'utiliser la directive using pour créer un
alias de ce nom :
using Lapin = MaSociete.MaSection.MonProjet.MonSousProgramme.MaClasse;
|
|
|