系统自带委托Action与Func详解

1.委托理解

   说到委托相信大家都很了解,简单的说,委托相当于是一个指针,但是他是函数指针,他可以将方法当参数一样去传递,这样的好处是什么呢? 这样的好处就是可以在一个地方动态的调用函数。随时随地调用没有任何束缚,甚至可以取代反射。 我们使用反射有时候会反射调用另外一个类的方法,这个时候就可以使用委托替代,毕竟反射是有性能损耗的。

2.系统自带委托

上文说到委托的理解,这段说说系统内置的委托,内置委托有什么好处呢? 好处就是我们可以直接使用它们,不需要重新定义并将命名方法分配给该委托,简单就是说不需要自己定义,直接拿来使用。

3.Action类的委托

从图片可以看到Action一共可以有16个泛型参数,并且不返回值。重点有两个,1.参数是16个泛型参数,2,没有返回值。Action的使用可以像这样使用:

Action<int, int> methodss = (e, f) => { Console.Write(e + f); };

这种事匿名委托的用法,完整写法是:

                Action<int, int> methodsss = delegate (int k, int h)
             {
                 Console.WriteLine(k + h);
             };

4.Func类的委托

Func是另外一种系统内置委托,跟action的区别是他是有返回值的,看定义我们可以看到有个 out TResult的参数,这是返回值。用法如下:

            Func<int, int,int> methods = (c, d) => { return c + d; };

这也是匿名委托写法,完整写法是:

            Func<int, int,int> methodssss = delegate (int m, int n)
              {
                  return m + n;
              };

5.总结:

  • 如果要委托的方法没有参数也没有返回值就想到Action
  • 有参数但没有返回值就想到Action<T>
  • 无参数有返回值、有参数且有返回值就想到Func<T>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值