目录
一 委托类型简介
委托类型表示对具有特定参数列表和返回类型的方法的引用。 通过委托,可以将方法视为可分配给变量并可作为参数传递的实体。 委托还类似于其他一些语言中存在的“函数指针”概念。 与函数指针不同,委托是面向对象且类型安全的。
class Program
{
//申明委托
delegate int sum(int a, int b);
public static int s(int a,int b)
{
return a + b + 120;
}
static void Main(string[] args)
{
//创建委托对象,并把s方法绑定到委托上
sum sm = new sum(s);
//调用委托对象: 当创建一个委托对象时,必须使用与委托类型签名完全匹配的方法。
int ss =sm(22, 33);
Console.WriteLine(ss);
//因此我们必须将方法签名修改为与期望的方法签名完全匹配
sm += s;
Console.WriteLine(sm(55, 77));
Console.ReadLine();
}
}
二 Lambda表达式
Lambda表达式是C# 3.0引入的一种匿名函数语法,也称为“函数字面量”。Lambda表达式可以让你在代码中定义一个匿名函数,以进行简单的单行代码逻辑。Lambda表达式的语法如下:
(parameter1, parameter2, ...) => expression;
其中,parameter1, parameter2, ...是函数参数的列表,用逗号分隔;expression是函数体,可以是任意表达式或语句。
Lambda表达式可以作为委托类型(delegate)的实例化,也可以作为表达式委托(expression delegate)。
下面是一个简单的Lambda表达式示例:
//lambda表达式
public void Print() => Console.WriteLine();