Avatar ·

如何通过反射在C#中根据属性名称(字符串)获取对象属性值?

大家好!我是C#新手,遇到了这样一个问题:我有一个`Person`类,包含几个属性(`Name`、`Age`、`Email`)。我需要编写一个方法,接收该类的对象和一个字符串——属性名称,并返回该属性的值。也就是说,例如,我传入`person`和`"Name"`,得到`"John"`。 我知道这可以通过反射(Reflection)实现,但不知道具体怎么做。以下是我尝试过的代码: ```csharp public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } } static object GetPropertyValue(object obj, string propertyName) { // 如何在这里获取值? // 我尝试过类似 obj.GetType().GetProperty(propertyName) 的方法,但不知道接下来该怎么做。 return null; } ``` 问题在于,我不知道如何调用属性的getter,如果我只知道它的名称作为字符串。是否需要考虑大小写?如果属性名称是