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();
        }

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

相关推荐
2301_811232981 分钟前
C++中的契约编程
开发语言·c++·算法
2401_829004022 分钟前
C++中的访问者模式
开发语言·c++·算法
黎雁·泠崖3 分钟前
Java内部类与匿名内部类:定义+类型+实战应用
java·开发语言
m0_748229998 分钟前
Laravel7.x核心特性全解析
c语言·数据库·c#
青槿吖9 分钟前
第二篇:JDBC进阶骚操作:防注入、事务回滚、连接池优化,一篇封神
java·开发语言·jvm·算法·自动化
sin_hielo9 分钟前
leetcode 1984
数据结构·算法·leetcode
赵萱婷10 分钟前
C++17 nodiscard属性深度解析
开发语言·c++·经验分享
kklovecode10 分钟前
C++对C语言的增强
c语言·开发语言·c++
Tiger Z19 分钟前
《R for Data Science (2e)》免费中文翻译 (第18章) --- Missing values
开发语言·r语言