以下是一个示例代码,可以用 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 表达式的参数名称需要与表达式树中创建的参数名称相同。

C# 表达式树构建:x => {x.CreateName} 示例

原文地址: https://www.cveoy.top/t/topic/lu9Q 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录