委托Lambde表达式 学习笔记

1.委托的定义:  delegate 关键词, 委托就是一个没有注明具体内容的方法, 这样可以先调用, 后期再赋予它具体的方法

例:

//定义一个无返回值的公共委托
pulice delegate void 委托()

调用:

//方法有可能为空, 如果后期没赋值那么就必须要判断
if(委托!=null)
{
    委托();
}

2. 系统提供了一个类名为 Action 无参数无返回值的委托, 可以不用再定义这种委托而直接调用,支持泛型参数
例:

        //无参数
        Action action = 系统提供的Action委托方法;


        //泛型参数
        public void 方法()
        {
            Action action<string> = 系统提供的Action委托方法;
        }

        public void 系统提供的Action委托方法(string s)
        {
                
        }

3. 系统还提供了一个类名为Func 有返回参数的默认委托,其中最后一个参数一定是返回值的类型
例:

        public void 方法()
        {
            Func func<string,string,string> = 系统提供的Action委托方法;
        }

        public string 系统提供的Func 委托方法(string s1, string s2)
        {
                return s1
        }

4.委托还支持多播,  用"+="的符号链接,   其中Func需要获取他每一个方法的返回值需要从数组中循环逐个获取

            Func<string> func = 系统提供的func委托方法;

            func+=系统提供的func委托方法2;
            func+=系统提供的func委托方法3;


            Delegate[] delegates = func.GetInvocationList();
            foreach (Func<string> f in delegates)
            {
                //遍历可获得函数的返回值,否则 直接执行func只能获得最后一个函数的返回值
                f();
            }

5. 匿名委托

//不用额外创建方法, 直接用delegate临时创建一个方法给委托
Action m= delegate(){ message("你好") }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值