基础才是重中之重~通过人类的生活来学习Delegate

简介:

一个人(people),在他60岁之后,就宣布进入晚年了,在这个期间要多注意身体,多体检。

namespace NET基础才是重中之重

{
    /// <summary>
    /// 人类
    /// </summary>
    public class People
    {
        private int age;
        public string name = "张占占";       //姓名
        public string gander = "";         // 性别

        #region 构造方法
        public People(string _name, string _gander)
        {
            name = _name;
            gander = _gander;
        }
        public People() { }
        #endregion

        //声明委托
        public delegate void LifedEventHandler(Object sender, LifedEventArgs e);
        public event LifedEventHandler Liefd; //声明事件

        /// <summary>
        /// 定义LifedEventArgs类
        /// 传递给Observer所感兴趣的信息
        /// </summary>
        public class LifedEventArgs : EventArgs
        {
            public readonly int temperature;
            public LifedEventArgs(int age)
            {
                this.temperature = age;
            }
        }

        /// <summary>
        /// 可以供继承自 People 的类重写
        /// 以便继承类拒绝其他对象对它的监视
        /// </summary>
        /// <param name="e"></param>
        protected virtual void OnLife(LifedEventArgs e)
        {
            if (Liefd != null)
            {
                Liefd(this, e);  // 调用所有注册对象的方法
            }
        }

        /// <summary>
        /// 生活
        /// </summary>
        public void Life()
        {
            for (int i = 0; i <= 70; i++)
            {
                age = i;
                if (age > 60)
                {
                    LifedEventArgs e = new LifedEventArgs(age);
                    OnLife(e);
                }
            }
        }
    }

    /// <summary>
    /// 警报您了
    /// </summary>
    public class Alarm
    {
        public void MakeAlert(Object sender, People.LifedEventArgs e)
        {
            People heater = (People)sender;
            //访问 sender 中的公共字段
            Console.WriteLine("Alarm:{0} - {1}: ", heater.gander, heater.name);
            Console.WriteLine("Alarm: 您已经 {0} 岁了:", e.temperature);
            Console.WriteLine();
        }
    }

    /// <summary>
    /// 显示信息
    /// </summary>
    public class Display
    {
        public static void ShowMsg(Object sender, People.LifedEventArgs e)
        {   //静态方法
            People heater = (People)sender;
            Console.WriteLine("Display:{0} - {1}: ", heater.gander, heater.name);
            Console.WriteLine("Display:您已经进行晚年了,{0}岁要注意身体了。", e.temperature);
            Console.WriteLine();
        }
    }

    class Program
    {
        static void Main()
        {
            People heater = new People("张占占", "");
            Alarm alarm = new Alarm();
            heater.Liefd += alarm.MakeAlert;   //注册方法
            heater.Liefd += Display.ShowMsg;       //注册静态方法
            heater.Life();   //会自动调用注册过对象的方法
            Console.ReadKey();
        }
    }
} 

 本文转自博客园张占岭(仓储大叔)的博客,原文链接:基础才是重中之重~通过人类的生活来学习Delegate,如需转载请自行联系原博主。

目录
相关文章
|
3月前
|
开发者 UED
代码之外:软件开发者如何培养跨界思维
在技术飞速发展的今天,软件开发者面临的挑战已超越单纯编码技能。本文探讨了跨界思维的重要性及其对职业成功的推动作用。跨界思维能促进创新、提高适应性和增强沟通能力。通过学习新知识、参与多学科项目、建立多元化网络、培养创新思维及学习设计思维,开发者可全面提升自身能力。这不仅增强个人竞争力,还促进团队创新。
|
21天前
|
存储 人工智能 安全
《C++ 人工智能模型邂逅云平台:集成之路的策略与要点全解析》
在数字化时代,C++凭借其高性能和资源效率,成为开发人工智能模型的重要工具。云平台则提供强大的计算能力、灵活的存储及便捷的服务部署,为AI模型的应用拓展创造条件。本文探讨了C++与云平台集成的关键策略,包括云平台选型、数据管理、模型部署、性能优化及安全防护,旨在构建高效、稳定的AI应用系统,推动技术革新。
44 13
|
2月前
|
开发者
探索未知,拥抱变化——我的技术之旅与哲学思考###
在技术的浩瀚星海里,每一个代码片段都是探索未知的航标。本文不仅是一次技术的回顾,更是一场关于成长、挑战与自我超越的深刻对话。通过分享个人的技术学习历程,我希望能激发每位读者心中对未知的好奇与渴望,共同踏上这场充满奇迹与挑战的旅程。 ###
|
3月前
|
机器学习/深度学习 敏捷开发 大数据
软件测试的演变之旅:从传统方法到自动化革命
在数字时代的浪潮下,软件测试作为保障产品质量的关键一环,经历了从手工测试到自动化测试的重大转变。本文将探讨这一演变背后的驱动力、所面临的挑战以及未来的发展趋势,为读者揭示软件测试领域的深层次变革。
|
4月前
|
机器学习/深度学习 人工智能 算法
探索人工智能在医疗诊断中的应用与挑战Java编程中的对象和类:基础与实践
【8月更文挑战第27天】随着人工智能(AI)技术的飞速发展,其在医疗领域的应用日益广泛。本文深入探讨了AI技术在医疗诊断中的具体应用案例,包括图像识别、疾病预测和药物研发等方面,并分析了当前面临的主要挑战,如数据隐私、算法偏见和法规限制等。文章旨在为读者提供一个全面的视角,理解AI在改善医疗服务质量方面的潜力及其局限性。
|
4月前
|
人工智能 算法 数据安全/隐私保护
探索技术的本质:从代码到创新的旅程
【8月更文挑战第19天】在技术的海洋中,我们常常沉浸于代码的编写与算法的优化,却忽略了技术背后的深层含义。本文将通过个人的技术感悟,探讨技术不仅仅是工具和语言的结合体,更是连接思想与现实的桥梁。我们将一同回顾技术如何塑造我们的思考方式,以及它如何影响我们的生活和工作。
|
5月前
|
人工智能 自然语言处理 程序员
未来编程:AI技术如何改变软件开发
随着人工智能技术的飞速发展,其在软件开发领域的应用日益广泛。从自动化测试到智能代码补全,AI正在逐步改变着程序员的工作方式和软件的开发流程。本文将深入探讨AI技术在软件开发中的应用,以及它如何影响未来的编程趋势。
|
7月前
|
机器学习/深度学习 算法 搜索推荐
【高效率学习】探索最适合你的学习之路:从心理学、动机到教育学的深度解析
【高效率学习】探索最适合你的学习之路:从心理学、动机到教育学的深度解析
170 0
【高效率学习】探索最适合你的学习之路:从心理学、动机到教育学的深度解析
|
自然语言处理 算法 测试技术
思维链如何释放语言模型的隐藏能力?最新理论研究揭示其背后奥秘
思维链如何释放语言模型的隐藏能力?最新理论研究揭示其背后奥秘
309 0
|
机器学习/深度学习 人工智能 运维
感知类模型构建及应用-AI 架构师成长计划(三)|学习笔记
快速学习感知类模型构建及应用-AI 架构师成长计划(三)。
218 0
感知类模型构建及应用-AI 架构师成长计划(三)|学习笔记