返回顶部

收藏

C#经典面试题:猫大叫一声 主人被惊醒 老鼠被下跑

更多
//定义猫大叫事件的代理
public delegate void AlertHandler();
//主人类
class Human
{
  //主人被惊醒的方法
  public void Wake()
  {
     Console.WriteLine("主人:死猫别叫");
  }
}
//老鼠类
class Mouse
{
  //老鼠被吓包的方法
  public void Run()
  {
      Console.WriteLine("老鼠:有危险,快跑!");
   }
}
//猫类
class Cat
{
   //猫大叫事件
   public event AlertHandler AlertEvent;
   public Cat()
   {
   //猫大叫时执行Cry方法
     AlertEvent +=new AlertHandler(Cry);
   }
  //猫大叫事件执行的处理程序
  publicvoid Alert()
  {
    Console.WriteLine("猫:喵...喵...");
   }
  //猫大叫的方法
  public void Cry()
  {
    //触发猫大叫的事件
   AlertEvent();
   }
}
//房子类
class House
{
  //房子里有一只老鼠、一只猫和主人
  public Mouse mouse = new Mouse();
  public Cat cat = new Cat();
  public Human human = new Human();
  //由于在一个房子里,猫大叫的事件会引发老鼠“逃跑”和主人“惊醒”
  //所以在这里把老鼠“逃跑”和主人“惊醒”两个方法挂接到猫大叫的事件上。
public House()
{
  cat.AlertEvent +=new AlertHandler(mouse.Run);
  cat.AlertEvent +=new AlertHandler(human.Wake);
}
}
//客户程序
class Program
{
static void Main(string[] args)
{
//有一间房子
House h = new House();
//猫大叫
h.cat.Cry();
}
}

标签:猫大叫,面试题,C#

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. root 发表 2015-04-19 01:50:01 面试题整理:C#(一)
  2. leo 发表 2013-02-06 01:53:07 C#删除WebBrowser控件Session
  3. Herb Sutter 发表 2012-12-03 21:34:30 Perspective: “Why C++ Is Not ‘Back’”
  4. 雨夜带刀 发表 2013-05-06 14:09:56 一淘九宫格的面试题
  5. admin 发表 2013-07-20 08:46:03 C#中指针使用总结
  6. admin 发表 2013-09-09 13:43:49 【随笔】记一次网站重构的流程
  7. kobekillerjun 发表 2014-02-28 16:00:45 关于ArrayList的5道面试题
  8. itcodes 发表 2014-07-22 17:00:00 C#计算时间差。
  9. Fowler Zhang 发表 2014-09-22 03:41:51 常见Java面试题 – 第一部分:非可变性(Immutability)和对象引用(Object re
  10. dingyaguang117 发表 2013-07-19 15:41:25 C#对JSON的支持
  11. 逝去日子 发表 2015-01-28 14:21:05 asp.net MVC使用EF6连接mysql
  12. john 发表 2013-06-15 10:16:44 C#中使用Chromium内核浏览网页