using  System;

// 委托类似于C++中的函数指针,不同的是委托可以包含一个顺序的委托集合。
// 在C#类型封装中,对于不同类型的单个函数的暴露建议使用委托而不要使用接口。
// 委托在对象交互的过程中可以进行函数或函数集合的传递。
// 下面将演示一个多播委托的简单例子。
namespace  多播委托
{
    public delegate void 委托演示();
    class Program
    {
        static void Main(string[] args)
        {
            //这里产生2个演示对象
            工作者 演示对象1 = new 工作者();
            管理者 演示对象2 = new 管理者();
            //工作者向管理者汇报工作成果
            演示对象1.开始工作(演示对象2.开始管理());
        }
    }

    /**//// <summary>
    /// 从管理者那里得到具体的工作内容和顺序进行工作。
    /// </summary>
    class 工作者
    {
        public 工作者()
        {

        }

        public void 开始工作(委托演示 委托对象)
        {
            委托对象();
            Console.ReadLine();
        }
    }

    /**//// <summary>
    /// 管理者通过已经确定的工作内容去制定工作的流程,并告知工作者.
    /// </summary>
    class 管理者
    {
        public 管理者()
        {

        }

        public 委托演示 开始管理()
        {
            //得到可以开始的工作范围
            工作流模块1 工作流对象1 = new 工作流模块1();
            工作流模块2 工作流对象2 = new 工作流模块2();
            //首先确定要干哪些事
            委托演示 委托演示对象1 = new 委托演示(工作流对象1.流程1);
            委托演示 委托演示对象2 = new 委托演示(工作流对象1.流程2);
            委托演示 委托演示对象3 = new 委托演示(工作流对象1.流程3);
            委托演示 委托演示对象4 = new 委托演示(工作流对象2.流程1);
            委托演示 委托演示对象5 = new 委托演示(工作流对象2.流程2);
            委托演示 委托演示对象6 = new 委托演示(工作流对象2.流程3);
            //然后确定工作的顺序
            委托演示 委托演示对象7 = 委托演示对象1 + 委托演示对象2 + 委托演示对象3;
            委托演示对象7 += 委托演示对象4 + 委托演示对象5 + 委托演示对象6;
            return 委托演示对象7;
        }
    }

    class 工作流模块1
    {
        public void 流程1()
        {
            Console.WriteLine("开始流程");
        }

        public void 流程2()
        {
            Console.WriteLine("模块1流程1");
        }

        public void 流程3()
        {
            Console.WriteLine("模块1流程2");
        }
    }

    class 工作流模块2
    {
        public void 流程1()
        {
            Console.WriteLine("模块2流程1");
        }

        public void 流程2()
        {
            Console.WriteLine("模块2流程2");
        }

        public void 流程3()
        {
            Console.WriteLine("结束流程");
        }
    }
}

转载于:https://www.cnblogs.com/leitao1979/archive/2008/04/22/delegate2005.html

很久没上来写点东西了,今天把N年前的代码看了一遍。随手写了点寄托哀思--多播委托...相关推荐

  1. 很久没写东西了,留个言。

    很久没写东西了,留个言. 转载于:https://www.cnblogs.com/allanlau2004/archive/2005/07/26/200391.html

  2. 很久没来了,嘿嘿 问候一下大家,O(∩_∩)O哈哈~

    很久没来了,嘿嘿.发现上次发帖正好是一个月以前哦,嘿嘿. 最近职位火热招聘,有意向的快联系哦,嘿嘿 1. BI Technical PM BI Technical PM Job Location: R ...

  3. 见了很久没见的高中同学,真好

    周末去二炮的高中同学那里玩了.虽然同在西安已经6年,但是却从来没有去过她们学校,说起来似乎让人难以相信呵,可事实的确如此.可见我这个人的懒惰了          不过,虽然很久没有见面,见了面之后,感 ...

  4. 很久没来,丢一份前阵子做的 10 万连接性能测试 (fibjs, golang, nginx, nodejs)

    测试内容 动态HTTP服务器极限性能,分为两项: 优化前后的各版本fibjs 优化后的fibjs.使用cluster的nodejs.基于模块的nginx.使用多核的go 测试环境及方法 服务器 CPU ...

  5. 很久没写了,发个策划书如何?

    "互联网+"创新创业大赛校级答辩材料 全国"互联网+"创新创业大赛 <关于面向中小餐厅APP 平台构建> 项目策划书 项目名称:关于面向中小餐厅AP ...

  6. 【原创】新韭菜日记58--20190618 很久没写了,因为套牢,因为没内容可写

    我发现炒股这种事情可能是没法在直播弄的,因为可能会被骂蠢死 但事实上就是这么愚蠢,在欲望的样子多数人都是俗人,有点像日本漫画的富江,这也许是人内心的恶把 但是可能也是现代科技和商业社会前进的动力 炒股 ...

  7. hash表建立 很久没写数据结构了

    /** auhtor:lx date 4.9 2011 brief hash table */ #include <stdio.h> #include <stdlib.h> # ...

  8. 百度 谷歌分页_百度PC浏览器退役了,才发现自己很久没开电脑了

    2019年9月29日,百度宣布旗下PC浏览器停止服务的公告,根据公告内容,早在今年5月,百度就已经停止了PC浏览器的运营与维护,只是为保证用户有充裕的时间更换浏览器,百度保留了网页浏览等基础功能.如今 ...

  9. 很久没更新博客了,再发协同开发中SVN使用规范

    协同开发中SVN使用规范试用 目标,要求 本次svn提交规范主要针对当前项目中出现的svn管理难,开发流程控制难掌控,项目进度记录不准确等问题而提出.要求每个角色都要进行规范化svn作业. 目录结构与 ...

最新文章

  1. Ansible5:Ad-hoc常用模块
  2. cookie获取java_java中如何获取cookie
  3. [react] 简要描述下你知道的react工作原理是什么?
  4. windows server2003的邮箱服务器安装详细步骤
  5. 测试低频噪音软件,设计制作并验证0.1Hz~10Hz超低频微弱噪音检测放大器STEP BY STEP...
  6. 2022新版X站模板 二开苹果cms视频网站源码可封装app(学习教程)
  7. 阿里云公司简介介绍资料
  8. 什么是一条好链?——一定要有自主创新的硬核技术
  9. linux开发之deamon的写法
  10. 手机浏览器自动打开快应用?
  11. dw怎么保存html格式,教你如何用Dreamweaver制作网页以及保存网页的方法--系统之家...
  12. dede后台系统基本参数空白怎么办?
  13. 关于“DEP数据执行保护”的解决方案
  14. jquery-table2excel导出excel时名称设置方法
  15. 双边功率谱密度和单边功率谱密度_以高斯信号为例,计算幅度谱、相位谱、双边功率谱、双边功率谱密度、单边功率谱、单边功率谱密度。...
  16. 计算机中c语言的应用特点,计算机中C语言应用特点.doc
  17. proface普洛菲斯触摸屏维修GP4601TAA PFXGP4601TAA及故障处理
  18. SolidWorks二次开发-关于录制宏保存的格式
  19. arcgis10.2创建新站点报错无权限
  20. 算法之-判断某个整数是否为素数的自定义函数:

热门文章

  1. 搅局者·登场 — MateBook X Pro 长测
  2. 怎么理解数据网格(Data Mesh)
  3. 如何升级变色龙本体 AVR 固件
  4. 新概念英语第一册——1-4笔记
  5. python算法一:枚举法
  6. Android.bp编译提示ninja: error: unknown target ‘MODULES-IN-xxx‘终极指南
  7. 此计算机未配置为允许委派用户凭据,Kerberos 协议转换和受限委派
  8. NPL笔记——语言模型
  9. 软件加密系统Themida应用程序保护指南(九):通过命令行进行保护
  10. js逆向常用加密 + 微信公众号平台试练