public delegate void Del(int x);
class Program
{
static void Main(string[] args)
{
Del del = x => Console.WriteLine(x * x);
del(2);//4
System.Linq.Expressions.Expression<Del> expression = x => Console.WriteLine(x);
Console.Read();
}
}
上面的例子创建了一个表达式目录树对象expression,由于Del委托是没有返回值的,这里是将其直接输出。
表达式Lambda
表达式位于 => 运算符右侧的 lambda 表达式称为“表达式 lambda”。表达式 lambda 会返回表达式的结果,并采用以下基本形式:
复制代码(input parameters) => expression
注意:仅当 lambda 只有一个输入参数时,括号才是可选的;否则括号是必需的。 括号内的两个或更多输入参数使用逗号加以分隔:
复制代码
(x, y) => x == y
//有时,编译器难以或无法推断输入类型。 如果出现这种情况,你可以按以下示例中所示方式显式指定类型
(int x, string s) => s.Length > x
//使用空括号指定零个输入参数
() => SomeMethod()
语句Lambda
语句 lambda 与表达式 lambda 表达式类似,只是语句括在大括号中
复制代码(input parameters) => {statement;}
statement(语句Lambda)可以包含任意数量的语句,但通常不会多于两个或三个。
一个例子
复制代码
namespace Wolfy.LinqDemo
{
/// <summary>
/// 创建一个委托Del
/// </summary>
/// <param name="x">参数</param>
public delegate void Del(string strName);










