C# 事件(Event)应用说明二

简单示例如下

一.界面显示:

二.源代码示例:

cs 复制代码
        // 定义一个委托类型,用于事件处理程序
        public delegate void MyEventHandler(object sender, EventArgs e);

        // 发布者类
        public class ProcessBusinessClass
        {
            // 声明事件
            public event MyEventHandler ProcessCompleted;

            // 触发事件的方法
            protected virtual void OnProcessCompleted(EventArgs e)
            {
                ProcessCompleted?.Invoke(this, e);
            }

            // 模拟业务逻辑过程并触发事件
            public void StartMyEvent()
            {
                //Console.WriteLine("Process Started!");
                MessageBox.Show("事件触发开始");

                // 这里可以加入实际的运算逻辑的代码

                // 业务逻辑完成,触发事件
                OnProcessCompleted(EventArgs.Empty);
            }
        }

        // 订阅者类
        public class EventSubscriberClass
        {
            public void SubMyEvent(ProcessBusinessClass process)
            {
                process.ProcessCompleted += Process_ProcessCompleted;
            }

            private void Process_ProcessCompleted(object sender, EventArgs e)
            {
                
                MessageBox.Show("事件被执行!");
            }
        }


            private void DoSomething()
            {
                ProcessBusinessClass process = new ProcessBusinessClass();
                EventSubscriberClass subscriber = new EventSubscriberClass();

                // 订阅事件
                subscriber.SubMyEvent(process);

                // 启动过程
                process.StartMyEvent();

               
            }

        private void button18_Click(object sender, EventArgs e)
        {
            DoSomething();
        }

简单示例,大家参照理解,一起学习。。。。。。

相关推荐
潘潘潘潘潘潘潘潘潘潘潘潘14 分钟前
【C++】类和对象(下)
c语言·开发语言·c++·学习方法
2401_8572979119 分钟前
2025校招内推-招联金融
java·前端·算法·金融·求职招聘
写bug如流水24 分钟前
【Python】Python闭包的妙用与注意事项
开发语言·python·spring
小冉在学习39 分钟前
leetcode刷题day32|动态规划Part01(509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯)
算法·leetcode·动态规划
做人不要太理性40 分钟前
C++:模拟实现string
开发语言·c++
雷达学弱狗40 分钟前
孙论文——定标
算法
Mr_Xuhhh40 分钟前
vector
c语言·开发语言·数据结构·算法·链表·visualstudio
枫の准大一40 分钟前
空间复杂度&动态顺序表
数据结构·算法
鸽芷咕41 分钟前
【C++报错已解决】std::ios_base::floatfield
开发语言·c++·ios
MavenTalk1 小时前
经典Python应用库一览
开发语言·python·pycharm·requests