C#之委托学习二
2016-05-06 15:35
441 查看
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DelegateDemo1 { class Program { /// <summary> /// 定义一个返回string,没有参数的委托 delegate:委托关键字 /// </summary> /// <returns></returns> delegate string GetAString(); /// <summary> /// 定义一个没有返回值,带一个int类型参数的委托 /// </summary> /// <param name="x"></param> delegate void IntMethodInvokder(int x); /// <summary> /// 定义一个返回double,带2个参数的委托 定义委托:等同于定义一个新类 /// </summary> /// <param name="first"></param> /// <param name="second"></param> /// <returns></returns> delegate double TwoLongOp(long first, long second); delegate double DoubleOp(double x); static void ProcessAndDisplayNumber(Action<double> action, double value) { action(value); } static void Main(string[] args) { //测试多播委托 Action<double> operations = MathOperations.MultiplyByTwo; operations += MathOperations.Squre; //会执行委托的所有方法 MathOperations.MultiplyByTwo、MathOperations.Squre都会被执行 执行的方式是按照顺序执行的 ProcessAndDisplayNumber(operations, 3); ProcessAndDisplayNumber(operations, 4); Console.ReadKey(); } } class MathOperations { public static void MultiplyByTwo(double value) { Console.WriteLine("MultiplyByTwo: " + value * 2); } public static void Squre(double value) { Console.WriteLine("Squre: " + value * value); } } }
相关文章推荐
- c#调用COM组件
- C#实现把指定数据写入串口
- C#动态创建button的方法
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结
- C#通用邮件发送类分享
- 举例讲解C#中自动实现的属性
- C#中this的用法集锦
- C#数据结构之顺序表(SeqList)实例详解
- C#.NET获取拨号连接的宽带连接方法
- C#异步绑定数据实现方法
- C#实现AddRange为数组添加多个元素的方法
- C#中Equality和Identity浅析
- C#比较二个数组并找出相同或不同元素的方法