事件、订阅与触发(一)
程序员文章站
2024-03-16 19:38:10
...
示例代码(来自C#图解):
using System;
namespace Testevent001
{
delegate void Handler();
class Incrementer
{
public event Handler CountedADozen;
public void DoCount()
{
for (int i = 1; i < 100; i++)
if (i % 12 == 0 && CountedADozen != null)
CountedADozen();
}
}
class Dozens
{
public int DozensCount { get; private set; }
public Dozens(Incrementer incrementer)
{
DozensCount = 0;
incrementer.CountedADozen += IncrementerDozensCount;
}
void IncrementerDozensCount()
{
DozensCount++;
Console.WriteLine("Number of dozens = {0}", this.DozensCount);
}
}
class Program
{
static void Main(string[] args)
{
Incrementer incrementer = new Incrementer();
Dozens dozensCounter = new Dozens(incrementer);
incrementer.DoCount();
Console.WriteLine("Number of dozens = {0}", dozensCounter.DozensCount);
}
}
}
有一个人A在看报纸,一页页翻过去,这个时候B伸过头来说:
Rua,帮我看看最近撸串的新闻,听说最近小吃街联合半价,不能错过啊;
那么,A询问,需要怎么做呢?
B表示你看到撸串相关的新闻就吼一声”高蛋白大法好”就行了
于是有
发布者A
public event Handler 搞事
public void 看报纸
{
翻页
if 发现有撸串相关的新闻
搞事
}
订阅者B
{
public 搞新闻(订阅者 A)
{
A.搞事 += B.尬呼 //由B告诉A事情触发时需要做什么
}
void 尬呼()
{
吼一声"高蛋白大法好"
}
}
操作
{
打东边来一个A
打西边来一个B
A看报纸
做出对A行为的反馈
}
}
推荐阅读
-
事件、订阅与触发(一)
-
unity笔记1 - 碰撞体与触发器的事件
-
select如何实现重复选择同一项,可以连续触发事件 博客分类: html html js
-
【Android自定义控件】一个简单的长按控件,用以解决长按多次触发点击事件 博客分类: 【Android自定义控件】
-
sql server 2012使用触发器产生流水号并在另一库中创建与流水号有关的表
-
php实现事件监听与触发实例程序_PHP教程
-
javascript - addEventListener注册了多个相同事件,如何让其中一个触发,其他的失效??
-
php实现事件监听与触发的方法
-
php实现事件监听与触发的方法,php事件监听触发
-
关于$("body").append()一段html代码,在页面写能触发事件,写在js文件里写就没有_html/css_WEB-ITnose