zoukankan      html  css  js  c++  java
  • C#面试题

    记录一道面试题:

    猫叫了,老鼠逃跑了,主人醒了。

    public class Program
        {
            public delegate void CryHandler(object sender, CryArgs e);
    
            public class CryArgs
            {
                /// <summary>
                /// 声音内容
                /// </summary>
                public string Voice { get; set; }
    
                /// <summary>
                /// 声音强度
                /// </summary>
                public string VoiceLevel { get; set; }
            }
    
            /// <summary>
            /// 事物基类
            /// </summary>
            public abstract class AnyOne
            {
                /// <summary>
                ////// </summary>
                public abstract void Hear(object sender, CryArgs e);
    
                /// <summary>
                /// 名字
                /// </summary>
                public string Name { get; set; }
            }
    
            /// <summary>
            /// 主人
            /// </summary>
            public class Master : AnyOne
            {
                public Master()
                {
                    base.Name = "主人";
                }
    
                /// <summary>
                ////// </summary>
                public override void Hear(object sender, CryArgs e)
                {
                    Awake(e);
                }
    
                /// <summary>
                ////// </summary>
                private void Awake(CryArgs e)
                {
                    Console.WriteLine(string.Format("{0}听到猫{2}地叫\"{1}\",被惊醒了!", base.Name, e.Voice, e.VoiceLevel));
                }
            }
    
            /// <summary>
            /// 老鼠
            /// </summary>
            public class Mouse : AnyOne
            {
                public Mouse()
                {
                    base.Name = "老鼠";
                }
    
                /// <summary>
                ////// </summary>
                public override void Hear(object sender, CryArgs e)
                {
                    RunAway(e);
                }
    
                /// <summary>
                ////// </summary>
                private void RunAway(CryArgs e)
                {
                    Console.WriteLine(string.Format("{0}听到猫{2}地叫\"{1}\",被吓跑了!", base.Name, e.Voice, e.VoiceLevel));
                }
            }
    
            /// <summary>
            ////// </summary>
            public class Cat
            {
                private CryArgs cryArgs;
                public event CryHandler OnCry;
    
                public Cat()
                {
                    cryArgs = new CryArgs();
                }
    
                /// <summary>
                ////// </summary>
                public virtual void Cry(string voice, string voiceLevel)
                {
                    cryArgs.Voice = voice;
                    cryArgs.VoiceLevel = voiceLevel;
                    Console.WriteLine(string.Format("猫{0}地叫了一声:{1}!", voiceLevel, voice));
                    if (OnCry != null)
                    {
                        OnCry(this, cryArgs);
                    }
                }
            }
    
            public static void Main(string[] args)
            {
                Cat cat = new Cat();
                Master master = new Master();
                Mouse mouse = new Mouse();
    
                cat.OnCry += master.Hear;
                cat.OnCry += mouse.Hear;
    
                cat.Cry("眯眯眯", "大声");
    
                Console.ReadLine();
            }
        }
  • 相关阅读:
    如何使用BackgroundWorker
    Start SQL Service failed with message: "the log scan number passed to log scan in database 'master' is not valid"
    Cmdkey 凭证管理器工具
    PowerShell根据下载link下载文件
    vnc远程到连接linux服务器。
    shell远程取数据的脚本.
    about开源监控nagios.
    Android入门:File文件存储
    Android入门:Layout
    Android入门:Log介绍
  • 原文地址:https://www.cnblogs.com/tonymu/p/2889441.html
Copyright © 2011-2022 走看看