Espaces de noms et directives
Fait partie de la section Programmation Orientée Objet du Journey C# de Coddy — leçon 2 sur 70.
Les espaces de noms organisent votre code et évitent les conflits de nommage. Ils regroupent les classes liées entre elles, tout comme les dossiers organisent les fichiers.
Créer une classe à l'intérieur d'un espace de noms
namespace MyApp.Models
{
public class User
{
public string Name { get; set; }
public User(string name)
{
Name = name;
}
}
}Utilisez une directive using pour accéder aux classes d'un autre espace de noms
using System;
using MyApp.Models;
class Program
{
static void Main()
{
User user = new User("Alice");
Console.WriteLine(user.Name);
}
}Sortie :
AliceSans une directive using, vous devez utiliser le nom complet
MyApp.Models.User user = new MyApp.Models.User("Bob");La directive using vous permet de référencer des types dans un espace de noms sans avoir à saisir le chemin complet de l'espace de noms à chaque fois. System est un espace de noms courant contenant des classes fondamentales telles que Console.
Défi
MoyenVous avez une classe User dans l'espace de noms MyApp.Models. Ajoutez la directive using correcte dans Program.cs pour utiliser la classe User sans le nom complet.
Aide-mémoire
Les espaces de noms organisent le code et évitent les conflits de nommage en regroupant les classes apparentées.
Créez une classe à l'intérieur d'un espace de noms :
namespace MyApp.Models
{
public class User
{
public string Name { get; set; }
public User(string name)
{
Name = name;
}
}
}Utilisez une directive using pour accéder aux classes d'un autre espace de noms :
using System;
using MyApp.Models;
class Program
{
static void Main()
{
User user = new User("Alice");
Console.WriteLine(user.Name);
}
}Sans directive using, utilisez le nom complet :
MyApp.Models.User user = new MyApp.Models.User("Bob");L'espace de noms System contient des classes fondamentales comme Console.
Essayez vous-même
using System;
// À FAIRE : Ajouter la directive using pour MyApp.Models
class Program
{
static void Main()
{
string userName = Console.ReadLine();
// À FAIRE : Créer un objet User en utilisant userName
// À FAIRE : Afficher "User created: " suivi du Name de l'utilisateur
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Programmation Orientée Objet
1Fondamentaux de la POO
Fichiers externesEspaces de noms et directivesIntro aux classes et objetsLe mot-clé 'this'Méthodes et paramètresChamps vs PropriétésConstructeursInitialiseurs d'objetsRécapitulatif - Calculatrice simple4Héritage
Syntaxe de base de l'héritage (:)Le mot-clé 'base'Mots-clés Virtual & OverrideClasses scelléesLa classe de base 'object'Récapitulatif - Hiérarchie des employés7Fonctionnalités avancées
Surcharge d'opérateursIndexeurs (this[])Redéfinition de ToString()Méthodes d'extensionRécapitulatif - Liste personnalisée10Patrons de conception - Partie 1
Introduction aux patrons de conceptionSingleton Thread-SafePatron FabriquePatron Observateur (Événements)Patron Stratégie2Propriétés et membres statiques
Propriétés auto-implémentéesPropriétés en lecture/écriture seuleChamps et méthodes statiquesClasses statiquesMembres à corps d'expression5Polymorphisme & Interfaces
Polymorphisme : Compilation vs ExécutionInterface vs Classe AbstraiteInterfaces MultiplesInterfaces ExplicitesUpcasting & DowncastingRécapitulatif - Calculateur de Formes8Concepts avancés de la POO
Composition plutôt qu'héritageGénériques (Classes et Méthodes)Délégués et ÉvénementsAttributs et RéflexionIDisposable et l'instruction usingBases de l'Injection de Dépendances11Patrons de conception, Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode TemplatePatron ÉtatPatron Composite3Architecture des classes
Données d'instance vs statiquesMots-clés 'readonly' & 'const'Champs de supportRécapitulatif - Gestionnaire de compte bancaire6Encapsulation
Modificateurs d'accèsPropriétés pour l'encapsulationImplémentation du masquage de donnéesPatterns d'immuabilitéRécapitulatif - Dossiers d'étudiants12Projet : Système de gestion de bibliothèque
Structure du projetModèles Livre et Utilisateur