Func 和 Action 委托
2024-09-07 01:50:26
有了泛型委托,就有了一能适用于任何返回类型和任意参数(类型和合理的个数)的通用委托,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参数,基本上能适用于任何泛型委托的场景,非常好用。
最新文章
- 利用C语言获得网页编码
- 二分查找算法java实现
- zw版【转发&#183;台湾nvp系列Delphi例程】HALCON AffineTransImage
- 解决IE6下浮动层固定定位的经典方法
- Android Studio安装及主题字体配置
- POJ 2516 最小费用最大流
- mysql slave 错误解决
- 【stm32】时钟树解析
- SQL面试题:有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列
- mybatis源码之StatementHandler
- Redis in .NET Core 入门:(1) 安装和主要功能简介
- python 推导式
- Java-二进制转10进制原理机制
- 初识KNN
- 《Redis开发与运维》读书笔记
- weblogic的web.xml报错----Malformed UTF-8 char -- is an XML encoding declaration missing
- ASP.NET Core的Data Protect(数据保护)的学习和应用
- CSS 基础 例子 图片拼合技术
- bzoj千题计划294:bzoj3139: [Hnoi2013]比赛
- SGU 194 Reactor Cooling (有容量和下界的可行流)