Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# 表达式树

作者:只影天涯   发布日期:2025-03-20   浏览:106

using System;
using System.Linq.Expressions;

class Program
{
    static void Main()
    {
        // 创建一个表达式树,表示 x + 5
        ParameterExpression parameter = Expression.Parameter(typeof(int), "x");
        ConstantExpression constant = Expression.Constant(5, typeof(int));
        BinaryExpression addition = Expression.Add(parameter, constant);

        // 创建一个 lambda 表达式,表示 (int x) => x + 5
        Expression<Func<int, int>> lambda = Expression.Lambda<Func<int, int>>(addition, parameter);

        // 编译并调用 lambda 表达式
        Func<int, int> compiledLambda = lambda.Compile();
        int result = compiledLambda(10); // 结果应该是 15

        Console.WriteLine($"结果是: {result}");
    }
}

解释说明:

  1. ParameterExpression:定义了一个参数 x,类型为 int
  2. ConstantExpression:定义了一个常量 5,类型为 int
  3. BinaryExpression:创建了一个二元表达式,表示 x + 5
  4. Expression.Lambda:将表达式转换为一个 lambda 表达式 (int x) => x + 5
  5. Compile:将表达式树编译为可执行的委托 Func<int, int>
  6. 调用:通过调用编译后的委托,传入参数 10,得到结果 15

这段代码展示了如何使用 C# 的表达式树来构建和执行一个简单的数学表达式。

上一篇:c# wpf combobox设定当前选定值

下一篇:c#字符串转日期

大家都在看

c# 二进制

c# tcp client

c# type.gettype

c# sqlconnection

.net和c#

c#游戏开发

c#网络编程

c# rectangle

c# if else

c# rtsp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站