Espaces de noms (Visual C# Express)
Mise à jour : novembre 2007
Les espaces de noms (namespace) constituent une façon d'organiser les différents types intervenant dans un programme C#. Ils sont proches en concept d'un dossier dans un système de fichiers informatique. Comme les dossiers, les espaces de noms permettent aux classes d'avoir un nom qualifié complet unique. Un programme C# contient un ou plusieurs espaces de noms. Chaque espace de noms est soit défini par le programmeur (c'est-à-dire vous), soit défini par l'utilisateur dans le cadre d'une bibliothèque de classes écrite auparavant.
Par exemple, l'espace de noms System inclut la classe Console, une classe qui contient des méthodes servant à lire et écrire dans la fenêtre de console. L'espace de noms System contient également plusieurs autres espaces de noms, tel que System.IO et System.Collections. Le .NET Framework possède à lui seul plus de quatre-vingts espaces de noms, chacun pouvant avoir des milliers de classes : les espaces de noms servent à limiter la confusion pouvant se produire si des types et des méthodes portent les mêmes noms.
Si vous écrivez une classe en dehors d'une déclaration d'espace de noms, le compilateur fournit un espace de noms par défaut pour cette classe.
Raccourcis des espaces de noms
Pour utiliser la méthode WriteLine, définie par l'utilisateur dans la classe Console contenue dans l'espace de noms System, vous pouvez, par exemple, écrire la ligne de code suivante :
System.Console.WriteLine("Hello, World!");
Il est difficile de se souvenir de précéder toutes les méthodes contenues dans Console de System. Par conséquent, un raccourci utile consiste à insérer la directive using au démarrage de votre fichier source C#, comme suit :
using System;
L'insertion de using System; établit que l'espace de noms System est supposé ; vous pouvez par conséquent écrire ce qui suit :
Console.WriteLine("Hello, World!");
Création de votre propre espace de noms
On utilise fréquemment des espaces de noms lorsque l'on travaille sur des programmes de grande envergure. Utiliser vos propres espaces de noms vous permet de contrôler dans une certaine mesure les méthodes et les types portant le même nom. Imaginons que vous écriviez une application qui charge à la fois des données statistiques et des fichiers image depuis un disque. Vous pourrez créer deux nouveaux espaces de noms, l'un appelé Images et l'autre appelé StatisticalData. Comme vous utilisez deux espaces de noms distincts, tous les noms de méthodes définis dans chaque espace de noms seront uniques, même si les classes individuelles portent le même nom. Vous pourrez donc avoir, si vous le souhaitez, une classe appelée FileHandling dans les deux espaces de noms, chacun contenant une méthode appelée Load. Vous pouvez spécifier la classe que vous voulez en faisant référence à StatisticalData.FileHandling ou Images.FileHandling.
Il s'agit de la méthode conseillée pour créer un dossier séparé pour chaque espace de noms dans votre projet Visual C# Express.
Exemple
L'exemple suivant définit deux espaces de noms (avec le mot clé namespace), chacun contenant une classe nommée FileHandling. En spécifiant l'espace de noms, il est possible de distinguer rapidement les classes et les méthodes qu'elles contiennent.
namespace StatisticalData
{
class FileHandling
{
public void Load() {} // code to load statistical data
}
}
namespace Images
{
class FileHandling
{
public void Load() {} // code to load an image file
}
}
class Program
{
static void Main()
{
StatisticalData.FileHandling data = new StatisticalData.FileHandling();
data.Load();
Images.FileHandling image = new Images.FileHandling();
image.Load();
}
}