📜  从对象 c# 中获取属性值(1)

📅  最后修改于: 2023-12-03 15:21:57.501000             🧑  作者: Mango

从对象 C# 中获取属性值

在 C# 中,我们经常需要从对象中获取属性值。这可以通过访问对象的属性来实现。本文将介绍从对象中获取属性值的几种方法。

1. 直接访问属性

可以通过直接访问对象的属性来获取属性值。例如,如果有一个名为 person 的对象,它有一个 Name 属性,则可以通过以下方式获取其名称:

string name = person.Name;
2. 通过反射访问属性

可以使用反射机制从对象中获取属性值。要使用反射,请使用 Type 类获取对象类型,并使用 GetProperty 方法获取属性的 PropertyInfo 对象,然后使用 GetValue 方法从对象中获取属性值。例如:

object value = person.GetType().GetProperty("Name").GetValue(person, null);

这里,person.GetType() 返回对象的类型,GetProperty("Name") 获取 Name 属性的 PropertyInfo 对象,GetValue(person, null) 从对象中获取属性值。

3. 使用委托获取属性值

使用委托可以更快地获取属性值。可以使用 Func<T> 委托定义一个委托类型,并使用 Expression 类创建一个 lambda 表达式来获取属性值。例如:

Func<string> getName = () => person.Name;
string name = getName();
4. 使用索引器获取属性值

如果对象实现了索引器,则可以使用索引器获取属性值。例如,如果使用 Dictionary<string, object> 对象,则可以使用索引器获取属性值,如下所示:

Dictionary<string, object> person = new Dictionary<string, object>();
person["Name"] = "John";

string name = (string)person["Name"];
总结

这里介绍了几种从对象中获取属性值的方法。每种方法都有其优缺点,可以根据需要选择适合的方法。无论使用哪种方法,都需要了解对象类型和属性名称。