知识大全 C#中Delegate浅析与思考

Posted 函数

篇首语:日日行,不怕千万里;时时学,不怕千万卷。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 C#中Delegate浅析与思考相关的知识,希望对你有一定的参考价值。

C#中Delegate浅析与思考  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

     什么是托管函数      托管函数是一个对类里面的某个函数的一个引用 它自己并没有具体的函数定义 只是指向某个函数实现       与C++ Delphi的横向比较      在C++和Delphi中与托管函数对应的类型是函数指针 形式如下:      C++      typedef (int GetNum)(real rNum);      Delphi      function GetNum(rNum:real): integer; external;      这里定义函数指针 他们所能指向的函数定义的传入参数必须是实型 传出为整形         托管函数有什么用      由于托管函数是对类里面某个函数的一个引用 所以我们不必知道这个函数的具体名字是什么 而只需要调用托管函数 让托管函数去调用相应的函数就可以了 一个例子: 一个公司 一个领导 一个领导秘书 三个员工分别管理市场 策划和生产 这里秘书就相当与一个托管函数 领导要下达什么命令(获得市场信息 生产什么产品) 只需要对秘书说给我一份市场报告或者我们不生产原子弹转向生产氢弹 然后再由秘书根据领导的命令选择的去找哪个员工 再把员工获得的信息返回给领导 这里面三个员工对于领导是透明的 领导并不知道自己下达的命令具体是由谁执行的          如何定义&&如何使用      接着上面的例子 我们声明一个秘书托管函数原型      class Secretory            //定义托管函数原型      private delegate string Do(string mand);      //创建托管函数实例      public Do Doit;      //给秘书下达命令执行      public void ExecuteCommand(string mand)            switch(秘书根据命令判断是要给谁执行的)            case 调研市场的人:      Doit=new Do(new MarketMan() GetMarketInfo);      Break;      Case 生长产品的人:      Doit=new Do(new ProductMan() ProduceProduct);      Break;      Default:      Break;                  Doit(mand);               ///调研市场的那个人的类      class MarketMan            public string GetMarketInfo(string mand)       根据命令调查信息 返回获得信息 ;            ///生产产品的人      class ProductMan            public static string ProduceProduct(string mand)       根据命令生产产品 并返回生产工程中的信息;            ok 那么如何执行呢?老板怎么使用Secretory这个类呢?      go on      老板只需要把秘书叫(new)过来 直接向他下达命令 然后就可以喝茶去了~ ^_^      class Boss            public void static main()            (new Secretory()) Doit( 我们要生产氢弹 把以前的原子弹都扔到日本好了 );                     其他      正入你们所见的 上面的两个类中的方法 一个是静态 一个不是静态的 托管函数所指的函数可以静态的也可以不是静态的 cha138/Article/program/net/201311/13550

相关参考

知识大全 浅析Java与C#的事件处理机制(二)

浅析Java与C#的事件处理机制(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  \\在程序

知识大全 C#反射浅析

C#反射浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!首先了解C#反射的概念反射是一个运行库类

知识大全 C#接口和抽象类技术特点浅析

C#接口和抽象类技术特点浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一C#抽象类  C#

知识大全 浅析C#运行时相互关系

浅析C#运行时相互关系  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nb

知识大全 C#创建SQL Server数据库浅析

C#创建SQLServer数据库浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  C#语言有很

知识大全 C#中的Adapter设计模式浅析

C#中的Adapter设计模式浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  意图  把一个

知识大全 C# 跨线程调用TextBox方法浅析

C#跨线程调用TextBox方法浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 C#回调函数及API应用浅析

C#回调函数及API应用浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  开发环境:WinXP

知识大全 浅析C#中的套接字编程

浅析C#中的套接字编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!大家都知道Java语言的强大功

知识大全 C# HttpWebRequest提交数据方式浅析

C#HttpWebRequest提交数据方式浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!