📅  最后修改于: 2023-12-03 15:21:57.501000             🧑  作者: Mango
在 C# 中,我们经常需要从对象中获取属性值。这可以通过访问对象的属性来实现。本文将介绍从对象中获取属性值的几种方法。
可以通过直接访问对象的属性来获取属性值。例如,如果有一个名为 person
的对象,它有一个 Name
属性,则可以通过以下方式获取其名称:
string name = person.Name;
可以使用反射机制从对象中获取属性值。要使用反射,请使用 Type
类获取对象类型,并使用 GetProperty
方法获取属性的 PropertyInfo
对象,然后使用 GetValue
方法从对象中获取属性值。例如:
object value = person.GetType().GetProperty("Name").GetValue(person, null);
这里,person.GetType()
返回对象的类型,GetProperty("Name")
获取 Name
属性的 PropertyInfo
对象,GetValue(person, null)
从对象中获取属性值。
使用委托可以更快地获取属性值。可以使用 Func<T>
委托定义一个委托类型,并使用 Expression
类创建一个 lambda 表达式来获取属性值。例如:
Func<string> getName = () => person.Name;
string name = getName();
如果对象实现了索引器,则可以使用索引器获取属性值。例如,如果使用 Dictionary<string, object>
对象,则可以使用索引器获取属性值,如下所示:
Dictionary<string, object> person = new Dictionary<string, object>();
person["Name"] = "John";
string name = (string)person["Name"];
这里介绍了几种从对象中获取属性值的方法。每种方法都有其优缺点,可以根据需要选择适合的方法。无论使用哪种方法,都需要了解对象类型和属性名称。