Comprendre la réflexion en C#
Utilisez la réflexion pour inspecter et manipuler des objets lors de l’exécution
Comprendre la réflexion en C# est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 5 sur 5. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 5 leçons au total.
Introduction à la réflexion
Comprendre la réflexion en C#
Bienvenue dans la prochaine leçon ! Dans cette leçon, vous découvrirez la réflexion en C#, une fonctionnalité puissante qui vous permet d’examiner et d’utiliser les types et les objets lors de l’exécution. Commençons !

Qu’est-ce que la réflexion ?
La réflexion est la capacité d’un programme à examiner et à manipuler sa propre structure lors de l’exécution. Elle est couramment utilisée pour :
- Accéder aux métadonnées sur les types, les méthodes et les propriétés.
- Appeler dynamiquement des méthodes et accéder aux champs.
- Créer des structures logicielles et des outils tels que des sérialiseurs et des outils de mappage objet-relationnel.
Point clé : La réflexion fait partie de l’espace de noms System.Reflection.
Accéder aux informations sur les types
Utilisez la classe Type pour accéder aux métadonnées d’un type. Exemple :
Astuce : Utilisez GetProperties, GetMethods et GetFields pour examiner les membres d’un type.
using System;
class SampleClass {
public int Id { get; set; }
public string Name { get; set; }
}
class Program {
static void Main() {
Type type = typeof(SampleClass);
Console.WriteLine("Type Name: " + type.Name);
Console.WriteLine("Properties:");
foreach (var prop in type.GetProperties()) {
Console.WriteLine("- " + prop.Name);
}
}
}
Créer dynamiquement des objets
Vous pouvez utiliser la réflexion pour créer dynamiquement des instances d’une classe. Exemple :
Point clé : Utilisez Activator.CreateInstance pour créer des objets lors de l’exécution.
using System;
class SampleClass {
public string Name { get; set; }
}
class Program {
static void Main() {
Type type = typeof(SampleClass);
object instance = Activator.CreateInstance(type);
var property = type.GetProperty("Name");
property.SetValue(instance, "Reflection Example");
Console.WriteLine("Name: " + property.GetValue(instance));
}
}
Appeler dynamiquement des méthodes
La réflexion vous permet d’appeler des méthodes lors de l’exécution sans les connaître au moment de la compilation. Exemple :
Astuce : Utilisez GetMethod et Invoke pour effectuer des appels de méthodes dynamiques.
using System;
class SampleClass {
public void Greet(string name) {
Console.WriteLine("Hello, " + name);
}
}
class Program {
static void Main() {
Type type = typeof(SampleClass);
object instance = Activator.CreateInstance(type);
var method = type.GetMethod("Greet");
method.Invoke(instance, new object[] { "World" });
}
}
Utiliser les attributes
La réflexion peut servir à examiner les attributes personnalisés appliqués aux types, aux méthodes ou aux propriétés. Exemple :
Point clé : Utilisez GetCustomAttributes pour récupérer les informations sur les attributes.
using System;
[AttributeUsage(AttributeTargets.Class)]
class SampleAttribute : Attribute {
public string Description { get; }
public SampleAttribute(string description) {
Description = description;
}
}
[Sample("This is a sample class.")]
class SampleClass {}
class Program {
static void Main() {
Type type = typeof(SampleClass);
var attributes = type.GetCustomAttributes(typeof(SampleAttribute), false);
foreach (SampleAttribute attr in attributes) {
Console.WriteLine("Description: " + attr.Description);
}
}
}
Exercice pratique
Créez un programme qui utilise la réflexion pour examiner une classe, répertorier ses méthodes et ses propriétés, puis appeler dynamiquement l’une de ses méthodes. Exemple :
using System;
class SampleClass {
public int Add(int a, int b) {
return a + b;
}
}
class Program {
static void Main() {
Type type = typeof(SampleClass);
Console.WriteLine("Methods:");
foreach (var method in type.GetMethods()) {
Console.WriteLine("- " + method.Name);
}
object instance = Activator.CreateInstance(type);
var addMethod = type.GetMethod("Add");
int result = (int)addMethod.Invoke(instance, new object[] { 5, 3 });
Console.WriteLine("Result of Add: " + result);
}
}
Bonnes pratiques pour utiliser la réflexion
Voici quelques bonnes pratiques :
- Utilisez la réflexion avec modération, car elle peut avoir un impact sur les performances.
- Mettez en cache les résultats de la réflexion pour améliorer l’efficacité des appels répétés.
- Préférez les solutions à la compilation à la réflexion lorsque cela est possible.
- Utilisez la réflexion dans les scénarios dynamiques, comme les modules d’extension et les structures logicielles.
Astuce : Associez la réflexion à des attributes personnalisés pour créer des applications flexibles et dynamiques.
Bravo !
Félicitations ! Vous avez appris à utiliser la réflexion pour examiner et manipuler les types lors de l’exécution en C#. Cette leçon conclut la catégorie « Fonctionnalités avancées de C# ». Poursuivons vers de nouvelles aventures de programmation !

Apprends C# avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 93
- Leçons
- 346
Questions Fréquemment Posées
La leçon « Comprendre la réflexion en C# » est-elle gratuite ?
Oui — le texte complet de « Comprendre la réflexion en C# » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 5 leçons au total.
Qu'est-ce que j'apprendrai dans « Comprendre la réflexion en C# » ?
Utilisez la réflexion pour inspecter et manipuler des objets lors de l’exécution Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C# Academy ?
Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 5 sur 5.
Combien de temps prend la leçon « Comprendre la réflexion en C# » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?
Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Types génériques en C#
- Async et await : manipuler le code asynchrone
- Comprendre les threads et les tâches
- Découvrir les délégués et les expressions lambda
- Comprendre la réflexion en C#