C# 委托及各种写法
2015-09-15 15:18
483 查看
委托是一个类型安全的对象,它指向程序中另一个以后会被调用的方法(或多个方法)。
1、定义委托类型
[访问修饰符]delegate 返回类型 委托名(形参);
2、声明委托对象
委托名 委托实例名;
3、创建委托对象
委托实例名=new 委托名(某个类的方法)
4、使用委托调用方法
委托实例名(实参)
委托注意事项:
1、委托和方法必须具有相同的参数。
2、委托可以调用多个方法,即一个委托对象可以维护一个可调用方法的列表而不是单独的一个方法,称为多路广播(多播)。
3、使用+=和-=运算实现方法的增加和减少
public delegate int Call(int num1, int num2);//第一步:定义委托类型
Call objCall;//第二步:声明委托对象
SimpleMath objMath = new SimpleMath(); // Math 类的对象
objCall = new Call(objMath.Multiply);// 第三步:创建委托对象,将方法与委托关联起来
Call objCall1 = new Call(objMath.Divide);
objCall += objCall1;//向委托增加一个方法
objCall -= objCall1;//向委托减去一个方法// 调用委托实例,先执行objMath.Multiply,然后执行objMath.Divide
int result = objCall(5, 3);
写法:
1、委托 委托名=new 委托(会调用的方法名); 委托名(参数);
2、委托 委托名 =会调用的方法名; 委托名(参数);
3、匿名方法
委托 委托名=delegate(参数){会调用的方法体};委托名(参数);
4、拉姆达表达式
委托 委托名=((参数1,。。参数n)=>{会调用的方法体});委托名(参数);
5、用Action<T>和Func<T>,第一个无返回值
Func<参数1, 参数2, 返回值> 委托名= ((参数1,参数2) => {带返回值的方法体 });返回值=委托名(参数1,参数2);
出处:
http://www.cnblogs.com/Blackieboy/articles/2203346.html
1、定义委托类型
[访问修饰符]delegate 返回类型 委托名(形参);
2、声明委托对象
委托名 委托实例名;
3、创建委托对象
委托实例名=new 委托名(某个类的方法)
4、使用委托调用方法
委托实例名(实参)
委托注意事项:
1、委托和方法必须具有相同的参数。
2、委托可以调用多个方法,即一个委托对象可以维护一个可调用方法的列表而不是单独的一个方法,称为多路广播(多播)。
3、使用+=和-=运算实现方法的增加和减少
public delegate int Call(int num1, int num2);//第一步:定义委托类型
Call objCall;//第二步:声明委托对象
SimpleMath objMath = new SimpleMath(); // Math 类的对象
objCall = new Call(objMath.Multiply);// 第三步:创建委托对象,将方法与委托关联起来
Call objCall1 = new Call(objMath.Divide);
objCall += objCall1;//向委托增加一个方法
objCall -= objCall1;//向委托减去一个方法// 调用委托实例,先执行objMath.Multiply,然后执行objMath.Divide
int result = objCall(5, 3);
写法:
1、委托 委托名=new 委托(会调用的方法名); 委托名(参数);
2、委托 委托名 =会调用的方法名; 委托名(参数);
3、匿名方法
委托 委托名=delegate(参数){会调用的方法体};委托名(参数);
4、拉姆达表达式
委托 委托名=((参数1,。。参数n)=>{会调用的方法体});委托名(参数);
5、用Action<T>和Func<T>,第一个无返回值
Func<参数1, 参数2, 返回值> 委托名= ((参数1,参数2) => {带返回值的方法体 });返回值=委托名(参数1,参数2);
出处:
http://www.cnblogs.com/Blackieboy/articles/2203346.html
相关文章推荐
- Android Native 绘图方法
- c#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#使用加边法计算行列式的值
- 交换机升级排障实例
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#通用邮件发送类分享
- C#中this的用法集锦
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#生成饼形图及添加文字说明实例代码
- C#判等对象是否相等的方法汇总
- C#简单的向量用法实例教程
- C#实现基于链表的内存记事本实例