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 小时前
roLabelImg 详细安装教程
开发语言·人工智能·后端·云原生
Wang's Blog15 小时前
Go-Zero 项目开发47:自研微服务框架的必要性与核心结构设计
开发语言·微服务·golang
白鸽(二般)15 小时前
MinIO Java Client API
java·开发语言
hPw0eKIqD15 小时前
C++ 模板参数推导问题小记(非推导上下文)
开发语言·c++
临床数据科学和人工智能兴趣组16 小时前
要使用 R Markdown,首先需要安装 R 和 RStudio,接着安装 rmarkdown 包
开发语言·数据挖掘·数据分析·r语言·r语言-4.2.1
普通攻击往后拉16 小时前
Leetcode 206. 反转链表
算法·leetcode·链表
Nebula嵌入式16 小时前
【C语言】09-深入解析main函数
linux·c语言·开发语言·嵌入式
@syh.16 小时前
【贪心】矩阵消除游戏
算法·游戏·矩阵
可编程芯片开发17 小时前
基于零极点配置的PID控制系统simulink建模与仿真
算法