Heim >Backend-Entwicklung >C++ >Wie kann ich Reflection verwenden, um Klasseneigenschaften in C#zu untersuchen?

Wie kann ich Reflection verwenden, um Klasseneigenschaften in C#zu untersuchen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2025-02-01 07:51:09538Durchsuche

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

Nutzung der Reflexion, um auf C# -Klasseigenschaften zuzugreifen

Objektorientierte Programmierung erfordert häufig die Interaktion mit Klasseninstanzen und deren Eigenschaften. Reflection bietet einen leistungsfähigen Mechanismus für die dynamische Untersuchung und Manipulation dieser Eigenschaften. Dieser Leitfaden zeigt, wie eine Liste von Eigenschaften abgerufen wird, die einer Klasse zugeordnet sind.

Abrufen von Eigenschaftsinformationen

Die .NET -Reflexions -API vereinfacht die Erforschung der Eigenschaften. Zwei primäre Methoden erreichen dies:

  • Obj.GetType().GetProperties(): verwendet, wenn sie mit einer bestimmten Klasseninstanz arbeiten.
  • typeof(ClassName).GetProperties(): verwendet, wenn sie direkt mit dem Klassentyp arbeiten.

Beide Methoden ergeben ein Array von PropertyInfo Objekten, die jeweils eine einzelne Eigenschaft der Klasse darstellen.

Praktisches Beispiel

veranschaulichen wir mit einer Beispielklasse:

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

Der folgende Code -Snippet ruft und zeigt die Werte aller Eigenschaften einer Foo Instanz an:

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

Wichtige Hinweise:

  • Zugriff auf statische Eigenschaften erfordert das Übergeben null als zweites Argument zu GetValue().
  • Um private oder geschützte Eigenschaften zu inspizieren, verwenden Sie GetProperties(BindingFlags) mit geeigneten Flags wie BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance. Denken Sie daran, dass der Zugriff auf nicht öffentliche Mitglieder vorsichtig und nur bei unbedingt erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie kann ich Reflection verwenden, um Klasseneigenschaften in C#zu untersuchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn