美文网首页
C#事件event使用方法

C#事件event使用方法

作者: GoodTekken | 来源:发表于2020-11-26 13:36 被阅读0次

分别创建publisher类,subscriber类,发布与订阅,最后再main函数中调用运行,参考代码如下:

  • publisher
class publisher
{
    public delegate void Publisherrhandler(PublisherEventArgs e);
    public event Publisherrhandler PublisherEvent;

    public void PublisherProcess()
    {
        PublisherEventArgs args = new PublisherEventArgs();
        args.time = DateTime.Now;
        args.count = 1;
        OnPublisherEvent(args);

        Thread.Sleep(1000);
        args.time = DateTime.Now;
        args.count = 2;
        OnPublisherEvent(args);

        Thread.Sleep(1000);
        args.time = DateTime.Now;
        args.count = 3;
        OnPublisherEvent(args);
    }

    public void OnPublisherEvent(PublisherEventArgs e)
    {
        if(PublisherEvent != null)
        {
            PublisherEvent(e);    //准备发布出去的事件
        }
    }

    public class PublisherEventArgs : EventArgs
    {
        public DateTime time;
        public int count;
    }
}
  • subscriber
class subscriber
{
    public static void Logger(EventArgs e)
    {
        PublisherEventArgs args = (PublisherEventArgs)e;
        DateTime time = args.time;
        int count = args.count;
        Console.WriteLine(string.Format("时间:{0},次数:{1}",time,count));
    }
}
  • Main
public Form1()
{
    InitializeComponent();

    publisher mypublisher = new publisher();
    mypublisher.PublisherEvent += new publisher.Publisherrhandler(subscriber.Logger);

    mypublisher.PublisherProcess();
}

相关文章

网友评论

      本文标题:C#事件event使用方法

      本文链接:https://www.haomeiwen.com/subject/ijiaiktx.html