C#简单事件说明

发布时间:2024-10-27 09:01

事件(Event)说是一个用户操作,如事件发生、点击、移动等,或者是一些提示信息,如系统生成的通知。应用程序时响应事件。例如,需要中断。

C# 中使用事件处理线程间的通信。

事件在类中声明且生成,且通过使用同一个类或其他类中的委托与事件处理程序关联。包含用于发布事件的类。这被称为事件器(发布者)类。其他接受该事件的类被称为订阅者(订阅者)类。事件使用发布-订阅(发布者-订阅者)模型。

发布器(publisher)是一个包含事件和委托定义的对象。事件和委托之间的联系也定义在这个对象中。发布器(publisher)类的对象调用这个事件,并通知其他的对象。

订阅器(订阅者)是一个接受事件并提供事件处理程序的对象。在发布器(发布者)类中的委托订阅器(订阅者)类中的方法(事件处理程序)。以上说明来自于菜鸟教程

本例是简单说明一个事件Demo,从事件的产生到发布。

Trelease是发布事件类,负责事件的定义和对应委托的定义;

Tsubscribe是订阅事件类,负责事件具体处理过程的定义。

namespace 事件Demo
{

//发布事件类

using System.Windows;

namespace 事件Demo
{
    public class Tsubscribe
    {

        public void DoChange(string AText)
        {
            MessageBox.Show(AText);
        }
    }
}
//订阅事件类

    public class Trelease
    {
        private string name;
        public string Name 
        {
            get { return name; }
            set
            {
                if (value!= Name)
                {
                    name = value;
                    Onchange(value);
                }
            }
        }
        public delegate void MyDelegate(string AText);
        public event MyDelegate? Onchange;
    }
}

private void BtnTest_Click(object sender, RoutedEventArgs e)
        {
            Trelease trelease = new Trelease();  //发布器
            Tsubscribe tsubscribe = new Tsubscribe(); //订阅器
            trelease.Onchange += new Trelease.MyDelegate(tsubscribe.DoChange); //注册事件
            trelease.Name = TextBoxInput.Text;
        }

ItVuer - 免责声明 - 关于我们 - 联系我们

本网站信息来源于互联网,如有侵权请联系:561261067@qq.com

桂ICP备16001015号