匿名方法与Lambda表达式+泛型委托

匿名方法

和委托搭配使用,方便我们快速对委托进行传参,不需要我们定义一个新的函数,直接用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);
        }
    }
    
}

其运行结果如下所示:

该系列专栏为网课课程笔记,仅用于学习参考。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值