c#委托的通俗解释--实例透析委托的骨架
2010-12-03 15:30
295 查看
学习了委托,看了几个例子,在这里写出自己的看法,如果有什么不正确的理解 还望您能指出。2010-12-03
顾名思义"委托" 有中介之意,也就是说通过一个中间人搭线链接头和尾,距离来说就是说比如你想进皇宫见皇帝做生意,那么你需要太监带你进去,那么“委托”就是太监,你和他不会有任何交流,只是把你自己交给他,然后他把你带进去,等你见了皇帝之后,才开始做生意。
下面是一个例子:
上例输出:输出:
Multiplying by 2: 1.23 gives 2.46
Squaring: 1.23 gives 1.5129
Squaring: 1.23 gives 1.5129
例子中可以看出,定义了委托之后,在创建委托时把方法作为委托的参数(MathsOp operation = new MathsOp( MyDelegate.MultiplyBy2 )),在引用时委托把参数传给方法执行操作(operation( x )),也就是说委托至始至终就是传递,来回传递。需要注意的是,委托的定义需要在空间namespace之内,在类class之外。上例中的委托有“-=”和“+=”运算符,这是多路广播委托,也就是说委托可以用这两个运算符来添加或移除参数,委托时可以有多个参数的,也就是说通过委托可以同时执行多个方法。
参考:/article/4864938.html
顾名思义"委托" 有中介之意,也就是说通过一个中间人搭线链接头和尾,距离来说就是说比如你想进皇宫见皇帝做生意,那么你需要太监带你进去,那么“委托”就是太监,你和他不会有任何交流,只是把你自己交给他,然后他把你带进去,等你见了皇帝之后,才开始做生意。
下面是一个例子:
namespace Vczx.ProCSharp.Exc { public class MyDelegate { public static void MultiplyBy2( double value ) { double result = value * 2; Console.WriteLine( "Multiplying by 2: {0} gives {1}", value, result ); } public static void Squre( double value ) { double result = value * value; Console.WriteLine( "Squaring: {0} gives {1}", value, result ); } } delegate void MathsOp( double x ); class Start { [STAThread] static void Main(string[] args) { MathsOp operation = new MathsOp( MyDelegate.MultiplyBy2 ); operation += new MathsOp( MyDelegate.Squre ); double x = 1.23; operation( x ); operation -= new MathsOp( MyDelegate.MultiplyBy2 ); operation( x ); Console.Read(); } } }
上例输出:输出:
Multiplying by 2: 1.23 gives 2.46
Squaring: 1.23 gives 1.5129
Squaring: 1.23 gives 1.5129
例子中可以看出,定义了委托之后,在创建委托时把方法作为委托的参数(MathsOp operation = new MathsOp( MyDelegate.MultiplyBy2 )),在引用时委托把参数传给方法执行操作(operation( x )),也就是说委托至始至终就是传递,来回传递。需要注意的是,委托的定义需要在空间namespace之内,在类class之外。上例中的委托有“-=”和“+=”运算符,这是多路广播委托,也就是说委托可以用这两个运算符来添加或移除参数,委托时可以有多个参数的,也就是说通过委托可以同时执行多个方法。
参考:/article/4864938.html
相关文章推荐
- C# 委托delegate 回调方法 多路广播 的通俗解释
- C# 中关于委托和事件的一个实例
- c# 委托的定义及使用实例
- C# 委托,事件 实例
- [转摘] 关于C#中委托和事件机制的一个最佳实例
- c#的委托和事件的实例学习
- 【C#】关于c#中委托的解释
- 使用C#实例解释SOLID原则
- 通俗易懂地解释一下C#中的事件和委托
- C#异步委托调用实例分析
- C# 委托实例(跨窗体操作控件)
- Expression构建DataTable to Entity 映射委托 sqlserver 数据库里面金额类型为什么不建议用float,实例告诉你为什么不能。 sql server 多行数据合并成一列 C# 字符串大写转小写,小写转大写,数字保留,其他除外 从0开始用U盘制作启动盘装Windows10系统(联想R720笔记本)并永久激活方法 纯CSS打造淘宝导航菜单栏 C# Winform
- C#中委托和事件的区别实例解析
- C# 事件模型(基于委托)实例参考
- C# 委托实例(跨窗体操作控件)
- c# 用实例来理解委托与事件
- C#委托初级使用的实例代码
- C# 多线程传参和返回值委托异步回调实例
- C# 多线程控制控件实例(invoke,控件的委托方法)