委托理解之示例
来源:互联网 发布:西门代练淘宝店 编辑:程序博客网 时间:2024/05/18 03:08
上篇博文的定时器中我用到了委托,现在将委托相关的理解补上来。
首先呢,要知道什么是委托?
委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。
委托的作用是:引用被委托的方法。
二、委托示例
1、首先声明一个委托,并书写委托函数类;
namespace com.gx.Delegate { //声明委托 delegate string MsgDelegate( string str ); class DelegateClass { public static double GetStringByConsole( string msg ) { return "输出内容为:"+msg; } } }2、我们试着先调用下,调用代码如下:
MsgDelegate msgDelegate = new MsgDelegate(new DelegateClass().GetStringByConsole);
上面我们做的事情呢,其实就是实例化已经定义了的委托,并给该委托一个执行参数,即GetStringByConsole,该执行参数,可以是静态的方法,也可以是动态的方法。
声明是为了用它,
string str_msg=msgDelegate("Wild Sea");输出结果为:输出内容为:Wild Sea
3、通过上面的示例,我想已经大概明白了委托是怎么回事了,下面呢我们换一种书写方式来利用委托;
首先呢,还是一样,需要声明委托;
//定义委托 public delegate string MsgDelegate (string name);
然后呢书写委托函数类,如下所示:
class DelegateClass { public static double GetStringByConsole( string msg ){ return "输出内容为:"+msg; } private static void RunDelegateFunction(string msg,MsgDelegate msgDelegate) { msgDelegate(msg); } static void Main(string[] args) { RunDelegateFunction("夜的向日葵", GetStringByConsole); Console.ReadKey(); } }
输出为:输出内容为:夜的向日葵
以上示例一定要注意的是RunDelegateFunction方法,因为它接受一个MegDelegate类型的委托参数,后面直接调用该函数即可,方便、灵活。
1 0
- 委托理解之示例
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- C#委托之个人理解
- 委托示例
- 委托示例
- Android 谈谈Handler那些事
- GYM 100827 A.Runes(水~)
- 条码读取控件Dynamsoft Barcode Reader 5.0发布丨附下载
- Win下必备神器之Cmder
- 卷积神经网络 cnnff.m程序 中的前向传播算法 数据 分步解析
- 委托理解之示例
- C语言字符串读取函数 gets()与fgets()
- CountDownLatch使用解析
- 【SpringMVC】配置<context:component-scan>
- Android的布局管理器(下篇)-GridLayout、AbsoluteLayout、android单位转换
- Error:Undetermined Visual Studio Version
- Hadoop+Hbase+Spark集群配置—Zookeeper安装
- hibernate 实现多表连接查询
- linux 释放内存