publicclass EatEventArgs : EventArgs
    ...{
        public String restrauntName; //饭店名称
        publicdecimal moneyOut; //准备消费金额
     }

    /**<summary>
    /// 这个委托用来说明处理吃饭事件的方法的方法头(模式)
    ///</summary>
    publicdelegatevoid EatEventHandler(object sender, EatEventArgs e);

    /**<summary>
    /// 引发吃饭事件(EateEvent)的类Master(主人),这个类必须
    /// 1.声明一个名为EatEvent的事件: public event EatEventHandler EatEvent;
    /// 2.通过一个名为OnEatEvent的方法来引发吃饭事件,给那些处理此事件的方法传数据;
    /// 3.说明在某种情形下引发事件呢?在饿的时候。用方法Hungrg来模拟。
    ///</summary>
    publicclass Master
    ...{
        //声明事件
        publicevent EatEventHandler EatEvent;

        //引发事件的方法
        publicvoid OnEatEvent(EatEventArgs e)
        ...{
            if (EatEvent !=null)
            ...{
                 EatEvent(this, e);
             }
         }

        //当主人饿的时候,他会指定吃饭地点和消费金额。
        publicvoid Hungry(String restrauntName, decimal moneyOut)
        ...{
             EatEventArgs e =new EatEventArgs();
             e.restrauntName = restrauntName;
             e.moneyOut = moneyOut;

             Console.WriteLine("主人说:");
             Console.WriteLine("我饿了,要去{0}吃饭,消费{1}元", e.restrauntName, e.moneyOut);

            //引发事件
             OnEatEvent(e);
         }
     }

    /**<summary>
    /// 类Servant(仆人)有一个方法ArrangeFood(安排食物)来处理主人的吃饭事件
    ///</summary>
    publicclass Servant
    ...{
        publicvoid ArrangeFood(object sender, EatEventArgs e)
        ...{
             Console.WriteLine();
             Console.WriteLine("仆人说:");
             Console.WriteLine("我的主人, 您的命令是 : ");
             Console.WriteLine("吃饭地点 -- {0}", e.restrauntName);
             Console.WriteLine("准备消费 -- {0}元 ", e.moneyOut);
             Console.WriteLine("好的,正给您安排。。。。。。。。 ");
             System.Threading.Thread.Sleep(5000);
             Console.WriteLine("主人,您的食物在这儿,请慢用");
             Console.Read();
         }
     }

    /**<summary>
    /// 类God安排qinshihuang(秦始皇)的仆人是lisi(李斯),并让李斯的ArrangeFood
    /// 方法来处理qinshihuang的吃饭事件:qinshihuang.EatEvent += new EatEventHandler(lishi.ArrangeFood);
    ///</summary>
    publicclass God
    ...{
        staticvoid Main()
        ...{
             Master qinshihuang =new Master();
             Servant lishi =new Servant();

             qinshihuang.EatEvent +=new EatEventHandler(lishi.ArrangeFood);

            //秦始皇饿了,想去希尔顿大酒店,消费5000元
             qinshihuang.Hungry("希尔顿大酒店", 5000.0m);
         }
     }

转载于:https://www.cnblogs.com/tanding/archive/2012/06/28/2566653.html

C#事件-经典小例子相关推荐

  1. Android处理键盘事件的小例子

    1.昨天介绍了Android开发中处理键盘事件的一些知识,今天我将附上一个例子,这个例子说复杂也好,说不复杂也好,我尽量长话短说. 2.首先,创建一个安卓项目,项目名为KeyEventTest,新建完 ...

  2. Vue制作todoList事件备忘录经典小案例

    前言 今天是10月1日国庆节,行走在大街小巷,处处洋溢着热烈喜庆的节日氛围,在这一天祝愿祖国繁荣昌盛,越来越强大.因国庆放假(本来周六这天有课),今天无聊看了看后台私信,看到了很对私我类似的消息: 很 ...

  3. c语言缓冲区溢出例子,经典缓冲区溢出小例子

    经典缓冲区溢出小例子 文章目录 经典缓冲区溢出小例子 0.说明 1.基于缓冲区溢出的HelloWord 2.永不停止的HelloWord 0.说明 ​ 两个小程序,C语言编写,VC++6.0编译 ​ ...

  4. 经典Robocode例子代码- -SnippetBot

    经典Robocode例子代码  - -SnippetBot 看过了Robocode的文章,对Robocde有了个大概了解,现在我我们就一个经典的Robocode例子源代码来分析Robocode也jav ...

  5. 经典Robocode例子代码

    经典Robocode例子代码 作者:Alisdair     //*------------------------------------------------------------------ ...

  6. 经典Robocode例子代码--SnippetBot

    经典Robocode例子代码  - -SnippetBot 看过了Robocode的文章,对Robocde有了个大概了解,现在我我们就一个经典的Robocode例子源代码来分析Robocode也jav ...

  7. c语言连接数据库例子,c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual help).doc...

    这是精心收集的精品经典资料,值得下载保存阅读! c语言操作mysql数据库小例子_互帮互助(C language MySQL database operation example _ mutual h ...

  8. sku属性组合小例子

    参考: http://www.cnblogs.com/hsp-blog/p/6215721.html http://blog.csdn.net/csdn924618338/article/detail ...

  9. ​【Python基础】告别枯燥,60 秒学会一个 Python 小例子(文末下载)

    本文推荐一个python的傻瓜式的学习资源,内容简单易懂,让人可以在60 秒学会一个 Python 小例子 当前库已有 300多 个实用的小例子 本文来源:https://github.com/jac ...

  10. MVVM模式的一个小例子

    使用SilverLight.WPF也有很长时间了,但是知道Binding.Command的基本用法,对于原理性的东西,一直没有深究.如果让我自己建一个MVVM模式的项目,感觉还是无从下手,最近写了一个 ...

最新文章

  1. App功能测试的注意点
  2. suse11/12关闭防火墙
  3. php 跨域名存储cookie,实现跨域名Cookie
  4. H5 video 开发问题及相关知识点
  5. python导入自定义模块_Python3 导入自定义的包
  6. Codeforces Beta Round #11 B. Jumping Jack 思维
  7. Nifty JUnit:在方法和类级别上使用规则
  8. Linux网络编程——tcp并发服务器(多进程)
  9. 用Eclipse写java
  10. 有哪些问题应该得到解决?
  11. g90舵机怎么一直在抖_抖音怎么带货?这样做抖音号,抖音小白也能月入10w
  12. mysql创建视图查询_【MySQL】MySQL视图创建、查询。
  13. 大学英语计算机统考怎么过,2011年9月大学英语B 统考 计算机网考样题
  14. c语言d6d0,【单选题】汉字中的十六进制的机内码是D6D0H,那么它的国标码是(·) x2012 A. 5650H B. 5651H C. 5653H D. 5654H...
  15. 19年11月份,我为什么从上一家公司离职
  16. MATLAB强化学习工具箱(十一)训练DDPG智能体控制飞行机器人
  17. 当因为上传文件过大导致上传失败时
  18. 被大创耽误的一堆反思
  19. JS函数和对象(一)
  20. unicloud开发微商管理小程序-商品私域推广

热门文章

  1. FISCO BCOS Solidity 智能合约 返回数组
  2. 【例】系统顺序图、操作契约、领域模型图
  3. Unity TextMeshPro中文显示为方块
  4. java基础总结06-常用api类-System类常用方法
  5. spring 包的依赖问题
  6. Matter-JS Composites 混合材料 · 上
  7. Html5 + fromData + Spring MVC 单文件、多文件上传
  8. 阶段3 2.Spring_07.银行转账案例_6 测试转账并分析案例中的问题
  9. 【转载】【SQL】Sql Server Management Studio 18 打开闪退问题
  10. 贪心【CF1029E】Tree with Small Distances