C# 表达式树构建:x => {x.CreateName} 示例
以下是一个示例代码,可以用 C# 构建一个 'x => {x.CreateName}' 的表达式树:
using System;
using System.Linq.Expressions;
class Program
{
static void Main(string[] args)
{
// 创建一个 Person 对象
var person = new Person { CreateName = 'Tom' };
// 使用表达式树构建 'x => {x.CreateName}'
var parameter = Expression.Parameter(typeof(Person), 'x');
var property = Expression.Property(parameter, 'CreateName');
var lambda = Expression.Lambda<Func<Person, string>>(property, parameter);
// 编译表达式树并调用它
var func = lambda.Compile();
var result = func(person);
// 输出结果
Console.WriteLine(result); // 输出:Tom
}
}
class Person
{
public string CreateName { get; set; }
}
在上面的代码中,首先创建了一个 Person 对象,然后使用表达式树构建了一个 'x => {x.CreateName}' 的 lambda 表达式。这个表达式接受一个 Person 类型的参数,返回他的 CreateName 属性值。最后,将表达式编译成一个委托,调用它并输出结果。
注意,表达式树的类型需要与委托的类型相匹配,这里使用的是 Func<Person, string> 类型的委托。同时,lambda 表达式的参数名称需要与表达式树中创建的参数名称相同。
原文地址: https://www.cveoy.top/t/topic/lu9Q 著作权归作者所有。请勿转载和采集!