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
Mary-Kate Olsenoriginal
2025-02-01 07:51:09538parcourir

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:

<code class="language-csharp">public class Foo
{
    public int A { get; set; }
    public string B { get; set; }
}</code>

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

<code class="language-csharp">Foo foo = new Foo { A = 1, B = "abc" };

foreach (var prop in foo.GetType().GetProperties())
{
    Console.WriteLine($"{prop.Name} = {prop.GetValue(foo)}");
}</code>

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:
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