码农小白 事件 C#篇

本文深入探讨了C#中的事件机制,包括发布者和订阅者模式的原理,事件的声明方式,以及如何触发事件。通过具体示例展示了事件在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

事件

1、发布者和订阅者

有时我们程序中当一个特定的程序事件发生时,程序的部分可以得到该事件已经发生的通知,
这时候发布者和订阅者模式就能满足我们的需求

  • 发布者: 发布某个事件的类或结构
  • 订阅者: 在事件发生时得到通知的类或结构

例如:优快云博主发布一篇文章,关注订阅他的粉丝立马就能收到博主发布文章的通知

2、声明事件

  • 事件的声明在一个类中
  • 它需要委托类型的名称
  • 不能创建它的对象
  • 关键字:event
  • 事件是成员

3、触发事件

delegate void Handler();    //声明委托

class Incrementer    //发布者
{
	public event Handler CountedADozen;    //创建事件发布者
	public void DoCount()
	{
		for(int i = 1; i < 100; i++)
		{
			if(i % 10 == 0)
				CountedADozen();    //每计数10次触发一次事件
		}
	}
}

class Dozens
{
	public int DozensCount { get; private set;}
	public Dozens(Incrementer incrementer)
	{
		DozensCount = 0;
		incrementer.CountedADozen += IncrementerCountedADozen;    //订阅事件
	}
	public void IncrementerCountedADozen()    //声明事件处理程序
	{
		DozensCount++;
	}
}

class Program
{
	static void Main()
	{
		Incrementer incrementer = new Incrementer();
		Dozens dozens = new Dozens(incrementer);

		incrementer.DoCount();
		Console.WriteLine(dozens.DozensCount);
	}
}

输出结果

10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值