1. 什么是托管函数 托管函数是一个对类里面的某个函数的一个引用.它自己并没有具体的函数定义,只是指向某个函数实现. 2. 与C++, Delphi的横向比较 在C++和Delphi中与托管函数对应的类型是函数指针,形式如下: C++ typedef (int GetNum)(real rNum); Delphi function GetNum(rNum:real): integer; external; 这里定义函数指针,他们所能指向的函数定义的传入参数必须是实型,传出为整形 由于托管函数是对类里面某个函数的一个引用.所以我们不必知道这个函数的具体名字是什么,而只需要调用托管函数,让托管函数去调用相应的函数就可以了. 一个例子: 一个公司,一个领导,一个领导秘书,三个员工分别管理市场,策划和生产.这里秘书就相当与一个托管函数, 领导要下达什么命令(获得市场信息,生产什么产品),只需要对秘书说给我一份市场报告或者我们不生产原子弹转向生产氢弹.然后再由秘书根据领导的命令选择的去找哪个员工,再把员工获得的信息返回给领导. 这里面三个员工对于领导是透明的,领导并不知道自己下达的命令具体是由谁执行的. 接着上面的例子,我们声明一个秘书托管函数原型 class Secretory { //定义托管函数原型 private delegate string Do(string command); //创建托管函数实例 public Do Doit; //给秘书下达命令执行 public void ExecuteCommand(string command) { switch(秘书根据命令判断是要给谁执行的) { case 调研市场的人: Doit=new Do(new MarketMan().GetMarketInfo); Break; Case 生长产品的人: Doit=new Do(new ProductMan().ProduceProduct); Break; Default: Break; } } Doit(command); } ///调研市场的那个人的类 class MarketMan { public string GetMarketInfo(string command) { 根据命令调查信息, 返回获得信息 ;} } ///生产产品的人 class ProductMan { public static string ProduceProduct(string command) { 根据命令生产产品,并返回生产工程中的信息;} } ok,那么如何执行呢?老板怎么使用Secretory这个类呢? go on 老板只需要把秘书叫(new)过来,直接向他下达命令,然后就可以喝茶去了~ ^_^ class Boss { public void static main() { (new Secretory()).Doit(“我们要生产氢弹,把以前的原子弹都扔到日本好了”); } } 5. 其他 正入你们所见的,上面的两个类中的方法,一个是静态,一个不是静态的. 托管函数所指的函数可以静态的也可以不是静态的.
3. 托管函数有什么用
4. 如何定义&&如何使用
c#中delegate浅析与思考_c#应用
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » c#中delegate浅析与思考_c#应用
相关推荐
-      利用c#远程存取access数据库_c#应用
-      c# 3.0新特性系列:隐含类型var_c#教程
-      c#动态生成树型结构的web程序设计_c#应用
-      论c#变得越来越臃肿是不可避免的_c#应用
-      用c#监控并显示cpu状态信息_c#应用
-      c#中实现vb中的createobject方法_c#应用
-      photoshop给花瓶打造彩绘效果_photoshop教程
-      使用c#创建sql server的存储过程_c#应用