匿名方法
和委托搭配使用,方便我们快速对委托进行传参,不需要我们定义一个新的函数,直接用delegate关键字代替方法名,后面跟上参数列表与方法体。
格式:delegate(参数列表){方法体}
lambda表达式
是匿名方法的升级,较匿名方法更加简写,当你的方法体只有一句语句的时候,可以不写return,甚至可以没有花括号,参数列表的参数甚至可以不写数据类型,但如果说方法体里一旦出现了return,一定要加上花括号。
格式:例如:Sort(list,(a,b)=>a<b);(在委托声明完整的排序方法下,实现的降序排列)
(lambda表达式不建议使用,实际开发中可能会影响代码的可读性)
泛型委托
C#提供好了两个泛型委托的模板供我们使用,这两个模板基本上可以适用于所有的委托。所以其实不需要我们自定义。
1.不带返回类型的泛型委托——Action<类型1,类型2,...,类型n>参数列表是对应的参数类型。
2.带返回类型的泛型委托——Func<类型1,类型2,...,类型n>
参数列表的末尾的类型是作为返回类型使用
自定义泛型委托
格式:delegate T 委托名<T>(T参数);
使用第一条的示例
using System;
namespace 事件
{
class Program
{
static void Main(string[] args)
{
Test(100, ActionEvent);
}
public static void ActionEvent(int a)
{
Console.WriteLine(a);
}
public static void Test(int num,Action<int> del)
{
del(num);
}
}
}
其运行结果如下所示:
该系列专栏为网课课程笔记,仅用于学习参考。