asp.net func 委托
类别:编程学习 浏览量:1337
时间:2015-12-7 asp.net func 委托
asp.net func 委托Func委托是system下的全局函数,不用我们自定,系统自定义的,供我们使用,带有多个重载.
一、Func<T>委托的定义
public delegate TResult Func<TResult>();
public delegate TResult Func<T1, TResult>(T1 arg1);
public delegate TResult Func<T1, T2, TResult>(T1 arg1, T2 arg2);
public delegate TResult Func<T1, T2, T3, TResult>(T1 arg1, T2 arg2, T3 arg3);
public delegate TResult Func<T1, T2, T3, T4, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4);
public delegate TResult Func<T1, T2, T3, T4, T5, TResult>(T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5);
二、参数说明
1、TResult表示。
2、委托所返回值 所代表的类型, T,T1,T2,T3,T4表示委托所调用的方法的参数类型。
3、Func委托声明的最后一个泛型类型参数是委托所接收方法的返回值类型,前面的泛型类型参数(如果有的话)就是委托所接收的方法的形参类型。
三、Func委托实例
static long Add(int x ,int y)
{
return x + y;
}
static void Main(string[] args)
{
//以下泛型委托变量接收拥有两个int类型参数,返回一个long数值的方法。
Func<int,int,long> func = Add;
long result = func(100,200); //result=300
}
Func<int, bool> myFunc = null;//全部变量
myFunc = x => CheckIsInt32(x);
//给委托封装方法的地方 使用了Lambda表达式
private bool CheckIsInt32(int pars)//被封装的方法
{
return pars == 5;
}
bool ok = myFunc(5);//调用委托
namespace FuncAsFuncArgu
{
class Program
{
static void Main(string[] args)
{
int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 };
Console.WriteLine(Process(Add, numbers, 0, 5));
Console.WriteLine(Process(Multiply, numbers, 1, 5));
Console.ReadKey();
}
static int Process(Func<int, int, int> op, int[] numbers, int from, int to)
{
int result = numbers[from];
for (int i = from + 1; i <= to; i++)
result = op(result, numbers[i]);
return result;
}
static int Add(int i, int j)
{
return i + j;
}
static int Multiply(int i, int j)
{
return i * j;
}
}
}
标签:委托
您可能感兴趣
- asp.net func 委托
- System.Action委托
- tomcat是异步非阻塞吗(浅谈Tomcat如何打破双亲委托机制)
- js事件冒泡与事件捕获(基于事件冒泡、事件捕获和事件委托详解)
- 元宵晚会槽点多,芒果台上来就假唱,岳云鹏不说相声改评书了(元宵晚会槽点多)
- 岳云鹏跟凤凰传奇谈心,说出了人生中最重要的三个人,这才成功(岳云鹏跟凤凰传奇谈心)
- 爱情可以当饭吃吗(爱情能当饭吃吗)
- Top 3 JSHS《运动与健康科学 英文 》跻身SCI体育学期刊世界前三(Top3JSHS运动与健康科学)
- 体坛传媒LOGO全新升级,多元发展迈出坚实步伐(体坛传媒LOGO全新升级)
- 超撩人治愈的绝美水彩,原来出自她之手 一笔一画令无数人沉醉(超撩人治愈的绝美水彩)
热门推荐
- apache配置说明(深入apache host的配置详解)
- web前端开发怎么算乘法(如何计算Web动画帧率FPS)
- 织梦dedecms建站教程(详解DEDECMS织梦模板随机调用文章数据方法汇总教程)
- python直接查询mongodb(pymongo中聚合查询的使用方法)
- vue用于动态切换组件的内置组件(Vue 可拖拽组件Vue Smooth DnD的使用详解)
- python数据分析pandas教程(11个Python Pandas小技巧让你的工作更高效附代码实例)
- navicat15激活页面不显示(Navicat for MySQL 15注册激活详细教程)
- 媲美serv-u开源ftp(个人FTP建站域名解析serv-u常见问题解决方法之完全解决方案)
- python发送微信消息脚本(python实现给微信指定好友定时发送消息)
- laravel 模块目录(Laravel框架文件上传功能实现方法示例)