Fichiers externes
Fait partie de la section Programmation Orientée Objet du Journey C# de Coddy — leçon 1 sur 70.
Les fichiers externes vous permettent d'organiser vos classes dans des fichiers C# distincts et de les référencer dans votre programme principal en utilisant des espaces de noms.
Créez un fichier C# distinct nommé MyClass.cs
namespace MyApp
{
public class MyClass
{
public string Name { get; set; }
public MyClass(string name)
{
Name = name;
}
public string Greet()
{
return $"Hello, I'm {Name}";
}
}
}Référencez l'espace de noms dans votre fichier principal
using MyApp;Créer une instance et l'utiliser
MyClass obj = new MyClass("Alice");
Console.WriteLine(obj.Greet());Sortie :
Hello, I'm AliceL'instruction using MyApp; vous permet d'utiliser des classes de l'espace de noms MyApp sans avoir à les qualifier complètement. L'espace de noms regroupe les classes liées entre elles. Au sein d'un même projet, les classes sont accessibles entre les fichiers par défaut ; marquer une classe comme public est ce qui la rend également accessible depuis d'autres projets (assemblages) également.
Défi
MoyenOn vous donne des fichiers C# (MyClass.cs et Program.cs), ajoutez une instruction using dans le fichier Program.cs pour connecter les fichiers et utiliser la classe du fichier externe !
Essayez vous-même
// TODO: Remplacez le ? par l'espace de noms correct pour utiliser MyClass
using ?;
using System;
class Program
{
static void Main()
{
string testCase = Console.ReadLine();
// Créez une instance de MyClass et appelez GetMessage()
MyClass obj = new MyClass();
Console.WriteLine(obj.GetMessage());
}
}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 UtilisateurLogique du système d'empruntLINQ pour la rechercheInterface Console / Interface d'administrationTests unitaires (NUnit/xUnit)