C#使用lambda时怎么获取属性的信息,而不是获取属性的值
时间: 2024-03-26 09:34:42 浏览: 96
C#获得文件属性信息的实现方法
在使用 Lambda 表达式时,可以使用 Expression 类型来获取属性的信息,而不是获取属性的值。下面是一个示例:
```
using System;
using System.Linq.Expressions;
class Program
{
static void Main(string[] args)
{
// 创建一个 Expression 对象来获取属性信息
Expression<Func<Person, string>> expression = p => p.Name;
// 获取属性信息
MemberExpression memberExpression = expression.Body as MemberExpression;
if (memberExpression != null)
{
Console.WriteLine("Property Name: " + memberExpression.Member.Name); // 输出属性名称
Console.WriteLine("Property Type: " + memberExpression.Type); // 输出属性类型
}
}
}
class Person
{
public string Name { get; set; }
}
```
在上面的示例中,我们创建了一个 Lambda 表达式,用于获取 Person 对象的 Name 属性。然后,我们使用 Expression 类型获取属性信息,并输出属性名称和类型。通过这种方式,我们可以在运行时获取属性信息,而不是获取属性的值。
阅读全文