有了泛型委托,就有了一能适用于任何返回类型和任意参数(类型和合理的个数)的通用委托,Func 和 Action。如下所示(下面的in表示参数,out表示返回结果):

delegate TResult Func <out TResult> ();
delegate TResult Func <in T, out TResult> (T arg);
delegate TResult Func <in T1, in T2, out TResult> (T1 arg1, T2 arg2);
//一直到 T16
delegate void Action ();
delegate void Action <in T> (T arg);
delegate void Action <in T1, in T2> (T1 arg1, T2 arg2);
//一直到 T16

有了这样的通用委托,我们上面的Calculator泛型委托就可以删掉了,示例就可以更简洁了:

public static void Calculate<T>(T[] values, Func<T,T> c) {
for (int i = ; i < values.Length; i++)
values[i] = c(values[i]);
}

Func 和 Action 委托,除了ref参数和out参数,基本上能适用于任何泛型委托的场景,非常好用。

最新文章

  1. 利用C语言获得网页编码
  2. 二分查找算法java实现
  3. zw版【转发&#183;台湾nvp系列Delphi例程】HALCON AffineTransImage
  4. 解决IE6下浮动层固定定位的经典方法
  5. Android Studio安装及主题字体配置
  6. POJ 2516 最小费用最大流
  7. mysql slave 错误解决
  8. 【stm32】时钟树解析
  9. SQL面试题:有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列
  10. mybatis源码之StatementHandler
  11. Redis in .NET Core 入门:(1) 安装和主要功能简介
  12. python 推导式
  13. Java-二进制转10进制原理机制
  14. 初识KNN
  15. 《Redis开发与运维》读书笔记
  16. weblogic的web.xml报错----Malformed UTF-8 char -- is an XML encoding declaration missing
  17. ASP.NET Core的Data Protect(数据保护)的学习和应用
  18. CSS 基础 例子 图片拼合技术
  19. bzoj千题计划294:bzoj3139: [Hnoi2013]比赛
  20. SGU 194 Reactor Cooling (有容量和下界的可行流)

热门文章

  1. 使用python3编写程序,生成10个随机数,每个元素的值介于1到100之间,并计算所有元素的和、平均值。
  2. zabbix基本概述
  3. Python自定义模块
  4. 菜鸟对java和Go的理解
  5. Iconfont-阿里巴巴矢量图标库 登录账户是 github自动登录
  6. 【学习参考】Animate.css动画演示
  7. php 调用curl_init失败
  8. docker-ce 在windows10下使用volume的注意事项
  9. CF1326A Bad Ugly Numbers 题解
  10. MySql最左匹配原则解析