c#关于委托、事件的项目练习demo

以下概念性叙述均为个人理解,如有偏颇大家皆可指教
一、运行结果
注意:我将加热器与事件进行了绑定,但是报警器是直接调用方法的效果,大家比对观看
c#关于委托、事件的项目练习demo_第1张图片

二、项目练习demo

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 委托_事件练习
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        //高档热水器包含有加热器、报警器、显示屏,
        //1、当热水器水温超过95度,报警器会发出语音提示,
        //2、液晶屏显示水温提示,
        //观察者模式记录
        class MyEvent
        {
            public event MakeHotMachineHandler  temperatureChangeEvent;  //定义一个委托类型的事件
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //如何绑定事件,如何一个事件去绑定多个方法
            //事件实例化
            MyEvent eve = new MyEvent();
            //绑定事件到方法
            eve.temperatureChangeEvent += MakeHotMachine;

            if (string.IsNullOrEmpty(textBox1.Text.Trim()))
            {
                MessageBox.Show("请先输入水温!");
                return;
            }
            MakeHotMachine(Convert.ToInt32(textBox1.Text.Trim()));
            TVshow(Convert.ToInt32(textBox1.Text.Trim()));
        }

        //事件处理方法
        //加热器提示水温
        public delegate string MakeHotMachineHandler(int temperature);
        public  string MakeHotMachine(int temperature)
        {
            if (temperature>=95)
            {
                label3.Text = "嘀嘀嘀滴,当前水温以达到" + temperature + "摄氏度,请当心烫伤!";
            }
            else
            {
                label3.Text = "当前水温以达到" + temperature + "摄氏度";
            }
            return label3.Text;
        }


        //显示屏
        public string TVshow(int temperature)
        {
            if (temperature > 95)
            {
                label4.Text = "咔嚓咔嚓咔嚓,当前水温以达到" + temperature + "摄氏度,请当心烫伤!";
            }
            else
            {
                label4.Text = "当前水温以达到" + temperature + "摄氏度";
            }


            return label4.Text;

        }
**三、委托**
1、概念:大家可以把委托理解为“猎头”,代替本公司的人力资源部门去招聘,甲方爸爸只需要和乙方提人员需求,乙方老大让招聘部门去实施招聘。
2、作用
a\委托可以实现两个方法乃至多个方法之间的操作
b\委托像是一个类,它可以变量类型去使用,将方法转化为另一个方法的参数去操作,
例如:
委托的声明:public delegate static GetStudentDelegate();
GetStudent()
{    
}
public static Load(GetStudentDelegate GetStudent)
{
	GetStudent();
}
**四、事件**
概念:账号关注,关注的人可以查看到被关注的动态,将两者之间的账号单向绑定


你可能感兴趣的:(c#,c#,开发语言,后端)