Maison > développement back-end > C++ > Comment puis-je utiliser la réflexion pour explorer les propriétés de classe en C #?

Comment puis-je utiliser la réflexion pour explorer les propriétés de classe en C #?

Mary-Kate Olsen
Libérer: 2025-02-01 07:51:09
original
535 Les gens l'ont consulté

How Can I Use Reflection to Explore Class Properties in C#?

Tirant l'exécution de la réflexion pour accéder aux propriétés de classe C #

La programmation orientée objet nécessite fréquemment d'interagir avec les instances de classe et leurs propriétés. La réflexion offre un mécanisme puissant pour examiner et manipuler dynamiquement ces propriétés. Ce guide montre comment récupérer une liste de propriétés associées à une classe.

Récupération des informations de la propriété

L'API de réflexion .NET simplifie l'exploration de la propriété. Deux méthodes principales y parviennent:

  • Obj.GetType().GetProperties(): utilisé lorsque vous travaillez avec une instance de classe spécifique.
  • typeof(ClassName).GetProperties(): utilisé lorsque vous travaillez directement avec le type de classe.

Les deux méthodes donnent un tableau d'objets PropertyInfo, chacun représentant une seule propriété de la classe.

Exemple pratique

illustrons avec un exemple de classe:

public class Foo
{
    public int A { get; set; }
    public string B { get; set; }
}
Copier après la connexion

Le code de code suivant récupère et affiche les valeurs de toutes les propriétés d'une instance Foo:

Foo foo = new Foo { A = 1, B = "abc" };

foreach (var prop in foo.GetType().GetProperties())
{
    Console.WriteLine($"{prop.Name} = {prop.GetValue(foo)}");
}
Copier après la connexion

Remarques importantes:

  • L'accès aux propriétés statiques nécessite de passer null comme deuxième argument à GetValue().
  • pour inspecter les propriétés privées ou protégées, utilisez GetProperties(BindingFlags) avec des drapeaux appropriés comme BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance. N'oubliez pas que l'accès à des membres non publics doit être fait avec prudence et seulement lorsque vous avez absolument nécessaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal