C#算法一道面试题浅析

C#算法一道面试题浅析

2010-03-25  来自:CSDN Blog  字体大小:【    
  • 摘要:C#算法一道面试题向大家介绍了在面试中有可能会碰到的一道面试题,那么本文就用C#算法为你解答。

    C#算法一道面试题:程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。

    了解了题目之后让我们首先来看看C#算法程序的执行:

  
  
  1. public delegate void SubEventHandler();   
  2. public abstract class Subject   
  3. ...{   
  4.     public event SubEventHandler SubEvent;   
  5.     protected void FireAway()   
  6.     ...{   
  7.         if (this.SubEvent != null)   
  8.             this.SubEvent();   
  9.     }     
  10. }   
  11. public class Cat : Subject   
  12. ...{    
  13.     public void Cry()   
  14.     ...{   
  15.         Console.WriteLine(cat cryed.);   
  16.         this.FireAway();   
  17.     }   
  18. }   
  19. public abstract class Observer   
  20. ...{   
  21.     public Observer(Subject sub)   
  22.     ...{   
  23.         sub.SubEvent += new SubEventHandler(Response);   
  24.     }   
  25.     public abstract void Response();      
  26. }   
  27. public class Mouse : Observer   
  28. ...{   
  29.     private string name;   
  30.     public Mouse(string name, Subject sub) : base(sub)   
  31.     ...{     
  32.         this.name = name;   
  33.     }   
  34.     public override void Response()   
  35.     ...{   
  36.         Console.WriteLine(name +  attempt to escape!);   
  37.     }   
  38. }   
  39. public class Master : Observer   
  40. ...{   
  41.     public Master(Subject sub) : base(sub)...{}   
  42.     public override void Response()   
  43.     ...{   
  44.         Console.WriteLine(host waken);   
  45.     }   
  46. }   
  47. class Class1   
  48. ...{   
  49.     static void Main(string[] args)   
  50.     ...{   
  51.         Cat cat = new Cat();   
  52.         Mouse mouse1 = new Mouse(mouse1, cat);   
  53.         Mouse mouse2 = new Mouse(mouse2, cat);   
  54.         Master master = new Master(cat);   
  55.         cat.Cry();   
  56.     }   
  57.  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值