C# Lambda表达式树浅谈

开发 后端
这里介绍C# Lambda表达式树,C# Lambda表达式树允许我们像处理数据(比如读取,修改)一样来处理Lambda表达式。我以一个例子简单说明。

C#新语言特性有很多值得学习的地方,这里我们主要介绍C# Lambda表达式树,包括介绍C# Lambda表达式树要点等方面。

C# Lambda表达式树

C# Lambda表达式树允许我们像处理数据(比如读取,修改)一样来处理Lambda表达式。我以一个例子简单说明:

Expression<Func<int, bool>> filter = n => (n * 3) < 5;  
BinaryExpression lt = (BinaryExpression)filter.Body;  
BinaryExpression mult = (BinaryExpression)lt.Left;  
ParameterExpression en = (ParameterExpression)mult.Left;  
ConstantExpression three = (ConstantExpression)mult.Right;  
ConstantExpression five = (ConstantExpression)lt.Right;  
var One = filter.Compile();  
Console.WriteLine("Result: {0},{1}", One(5), One(1));  
Console.WriteLine("({0} ({1} {2} {3}) {4})", lt.NodeType,mult.
NodeType, en.Name, three.Value, five.Value); 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.

效果图如下:

Lambda表达式树

C# Lambda表达式树要点

1. Lambda表达式的参数类型可以忽略,因为可以根据使用的上下文进行推断。
2. Lambda表达式的主体(body)可以是表达式,也可以是语句块。
3. Lambda表达式传入的实参将参与类型推断,以及方法重载辨析。
4. Lambda表达式和表达式体可以被转换为表达式树。
5. 表达式树允许lambda表达式能够代表数据结构替代表示为执行代码。

【编辑推荐】

  1. C# const常量详细介绍
  2. C# Lambda表达式学习笔记
  3. C#隐式类型局部变量经验总结
  4. 调用C# Thread.Start()方法
  5. C# CheckStatus()方法
责任编辑:佚名 来源: 赛迪网
相关推荐

2009-08-27 09:44:59

C# Lambda表达

2009-09-09 13:01:33

LINQ Lambda

2009-08-26 16:17:23

C# Lambda表达

2024-03-25 13:46:12

C#Lambda编程

2009-07-09 09:51:07

Lambda表达式C#

2021-08-31 07:19:41

Lambda表达式C#

2011-05-20 17:50:45

C#

2009-09-14 13:57:20

C# Lambda表达Lambda表达式

2010-09-14 14:05:42

C#委托

2025-03-06 08:16:08

lambda表达式变量

2022-11-07 07:11:19

C#lambda函数

2010-10-19 10:03:02

Lambda表达式

2009-04-29 09:05:59

Lambda抽象代表.NET

2009-05-22 09:48:07

表达式树泛型委托.NET

2009-08-07 15:41:39

C#正规表达式

2023-11-02 08:25:58

C++Lambda

2020-10-16 06:40:25

C++匿名函数

2009-07-01 09:56:10

C#3.0

2022-12-05 09:31:51

接口lambda表达式

2009-09-15 15:18:00

Linq Lambda
点赞
收藏

51CTO技术栈公众号