C# dynamic 根据属性名字符串获取属性
时间: 2023-09-23 20:13:11 浏览: 164
在 C# 中,可以使用 `dynamic` 关键字和 `ExpandoObject` 类来根据属性名字符串获取属性。下面是一个示例代码:
```csharp
// 引入命名空间
using System.Dynamic;
// 定义一个类
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
// 根据属性名字符串获取属性
dynamic person = new ExpandoObject();
person.Name = "张三";
person.Age = 20;
var name = person.Name;
var age = person.Age;
Console.WriteLine(name); // 输出:张三
Console.WriteLine(age); // 输出:20
```
上述代码使用 `ExpandoObject` 类创建了一个动态对象 `person`,然后根据属性名字符串 `"Name"` 和 `"Age"` 获取动态对象的属性值。最终,将动态对象的属性值赋给变量 `name` 和 `age`,并输出了它们的值。
需要注意的是,使用 `dynamic` 关键字和 `ExpandoObject` 类存在一定的类型不安全性,需要谨慎使用。
阅读全文