Avatar ·

Wie erhalte ich den Wert einer Objekteigenschaft über ihren Stringnamen durch Reflektion in C#?

Hallo zusammen! Ich bin neu in C# und stehe vor folgender Aufgabe: Ich habe ein Objekt der Klasse Person und möchte dynamisch die Werte seiner Eigenschaften abrufen, wobei der Eigenschaftsname als String übergeben wird. Zum Beispiel gibt der Benutzer "Name" oder "Age" ein, und ich muss den entsprechenden Wert zurückgeben. Hier ist meine Klasse: ```csharp public class Person { public string Name { get; set; } public int Age { get; set; } public string City { get; set; } } ``` Ich erstelle ein Objekt: ```csharp var person = new Person { Name = "Иван", Age = 30, City = "Москва" }; string propertyName = "Name"; // oder "Age", "City" ``` Wie erhalte ich den Wert von person.Name, wenn ich nur den String "Name" kenne? Ich habe von Reflektion gehört, verstehe aber nicht, wie man sie anwendet. Ich habe so etwas versucht: ```csharp var value = person.GetType().GetProperty(propertyName).GetValue(person); ``` Aber das gibt einen Fehler aus, wenn die Eigenschaft nicht existiert. Wie behandelt man solche Fälle richtig? Gibt es einen sichereren Weg? Vielen Dank im Voraus!