MST

星途 面试题库

面试题:C#中表达式树如何构建简单的算术表达式

请使用C#表达式树构建一个简单的算术表达式,例如计算两个整数相加的表达式,并将其编译成可执行的委托,最后调用该委托返回计算结果。
24.2万 热度难度
编程语言C#

知识考点

AI 面试

面试题答案

一键面试
using System;
using System.Linq.Expressions;

class Program
{
    static void Main()
    {
        // 创建参数表达式
        ParameterExpression num1 = Expression.Parameter(typeof(int), "num1");
        ParameterExpression num2 = Expression.Parameter(typeof(int), "num2");

        // 创建加法表达式
        BinaryExpression addExpression = Expression.Add(num1, num2);

        // 创建Lambda表达式
        Expression<Func<int, int, int>> lambda = Expression.Lambda<Func<int, int, int>>(addExpression, num1, num2);

        // 编译成委托
        Func<int, int, int> addFunction = lambda.Compile();

        // 调用委托并获取结果
        int result = addFunction(3, 5);
        Console.WriteLine($"计算结果: {result}");
    }
}