Oui, une classe static
est techniquement un type. Elle peut avoir des membres (champs, méthodes, événements). Un espace de noms ne peut contenir que des types (et ce n'est pas considéré comme un "type" en soi; typeof(System)
est une erreur de compilation).
Il n'y a pas d'équivalent direct pour ajouter une directive using
pour un espace de noms d'une classe statique. Cependant, vous pouvez déclarer des alias :
using NomCourt = NomTresLongDeLaClasseStatique;
et utiliser
NomCourt.Membre
lorsque vous faites référence à ses membres.
De plus, vous pouvez utiliser des classes statiques pour déclarer des méthodes d'extension sur d'autres types et les utiliser directement sans faire référence explicitement au nom de la classe :
public static class IntExtensions {
public static int Carré(this int i) { return i * i; }
}
et l'utiliser comme :
int i = 2;
int iAuCarre = i.Carré(); // notez que le nom de la classe n'est pas mentionné ici.
Bien sûr, vous devrez ajouter une directive using
pour l'espace de noms contenant la classe pour utiliser la méthode d'extension si la classe n'est pas déclarée dans le namespace racine ou actuel.