c#委托相关
来源:互联网 发布:js json map 遍历 编辑:程序博客网 时间:2024/06/05 20:55
委托是什么: 是一中类,一个函数体。类似于函数指针。作用可以初期想成方法的存储器。就是把一堆方法收集到委托,然后委托在一个一个执行.还有就是委托作用是在方法中传递。
委托有分为几种:为什么要分?
1.委托的声明
(1). delegate
delegate我们常用到的一种声明
Delegate至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型。
例:public delegate int MethodtDelegate(int x, int y);表示有两个参数,并返回int型。
(2). Action
Action是无返回值的泛型委托。
Action 表示无参,无返回值的委托
Action<int,string> 表示有传入参数int,string无返回值的委托
Action<int,string,bool> 表示有传入参数int,string,bool无返回值的委托
Action<int,int,int,int> 表示有传入4个int型参数,无返回值的委托
Action至少0个参数,至多16个参数,无返回值。
例:
public void Test<T>(Action<T> action,T p) { action(p); }
(3). Func
Func是有返回值的泛型委托
Func<int> 表示无参,返回值为int的委托
Func<object,string,int> 表示传入参数为object, string 返回值为int的委托
Func<object,string,int> 表示传入参数为object, string 返回值为int的委托
Func<T1,T2,,T3,int> 表示传入参数为T1,T2,,T3(泛型)返回值为int的委托
Func至少0个参数,至多16个参数,根据返回值泛型返回。必须有返回值,不可void
例:
public int Test<T1,T2>(Func<T1,T2,int>func,T1 a,T2 b) { return func(a, b); }
(4) .predicate
predicate 是返回bool型的泛型委托
predicate<int> 表示传入参数为int 返回bool的委托
Predicate有且只有一个参数,返回值固定为bool
例:public delegate bool Predicate<T> (T obj)
例子就不写了。
多播委托:就是定义一个委托,有2个以上方法添加到委托里。(假如一个方法有异常委托就会中断)解决办法:
委托中的执行顺序也是你定义添加时的顺序.
匿名方法(具体怎么用还不太明白):
- c#委托相关
- C# 委托delegate的相关知识
- 委托相关
- C#委托-委托概述
- C#委托
- C#委托
- C#委托
- c#委托
- C# 委托
- C#委托
- C# 委托
- c#委托
- C#委托
- c#委托
- C#委托
- C# - 委托
- C#委托
- C#委托
- websocket和ajax轮询区别
- mysql5.5 mysql5.6 mysql5.7官方手册
- C++之获取网卡物理地址(MAC)
- SDUT 3811 离散题目17
- php中time()与$_SERVER[REQUEST_TIME]用法区别
- c#委托相关
- StrongReference,SoftReference, WeakReference的使用总结
- Python+Apache+CGI完全配置
- 打印一个等腰三角形
- 关于CentOS 6.6忘记密码和输入正确密码依旧无法登录的解决办法
- Android studio 3.0预览版中kotlin简单使用及配置
- 瞎扯淡 量产型炮灰工程师
- RSA算法加解密(JAVA)
- 自定义考勤统计日历(一)