下面真正开始讲事件的内容

sldhgr

sldhgr

2016-01-29 13:00

下面真正开始讲事件的内容,下面真正开始讲事件的内容

首先还是要问,什么是事件?
事件类似于异常,都是由对象触发的。不同的事件只不过是触发的时间,原因不一样罢了
所以有了Onload OnClick等事件订阅事件的含义就是给事件提供处理程序的代码在事件发生的时候执行这些代码他们称之为事件处理程序
时间可以有许多订阅的处理程序在事件触发的时候这些程序都会被调用
事件处理程序本身都是简单的函数他们唯一的限制就是要具有和委托相同的签名
发现自己的表达能力不行,还是来个例子吧

//定义委托
public delegate void MessageHandler(string messageText);
public class Connection
{
//定义事件
public event MessageHandler MessageArrived;
private Timer pollTimer;
public Connection()
{
pollTimer = new Timer(100);
pollTimer.Elapsed += new ElapsedEventHandler(CheckForMessage);
}
public void Connect()
{
pollTimer.Start();
}
public void Disconnect()
{
pollTimer.Stop();
}
private void CheckForMessage(object source, ElapsedEventArgs e)
{
Console.WriteLine("Checking for new messages.");
Random random = new Random();
if ((random.Next(9) == 0) && (MessageArrived != null))

{
//激发事件
MessageArrived("Hello Mum!");
}
}
}

public class Display
{
//事件案所要执行的函数
public void DisplayMessage(string message)
{
Console.WriteLine("Message arrived: {0}", message);
}
}


class Class1
{
static void Main(string[] args)
{
Connection myConnection = new Connection();
Display myDisplay = new Display();
//订阅事件
myConnection.MessageArrived +=
new MessageHandler (myDisplay.DisplayMessage);
myConnection.Connect();
Console.ReadLine();
}
}

总值事件的三要素要具备:
1、事件委托
2、事件的定义
3、事件的订阅
有了这三项,再在适时的时候触发该事件,相应的代码就会被执行

都怪语文没学好,惭愧
展开更多 50%)
分享

猜你喜欢

下面真正开始讲事件的内容

电脑网络
下面真正开始讲事件的内容

延迟事件为0的setTimeout的真正目的

Web开发
延迟事件为0的setTimeout的真正目的

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

真正的优生应该从择偶开始

电脑网络
真正的优生应该从择偶开始

google开始可以抓取框架内容

Web开发
google开始可以抓取框架内容

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

浅谈苹果开始扁平化设计的真正意义

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
浅谈苹果开始扁平化设计的真正意义

第一讲:初识AUTOCAD内容与上机指导

autocad教程
第一讲:初识AUTOCAD内容与上机指导

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

使用 PHP 和 Oracle 开发企业应用程序

使用 PHP 和 Oracle 开发企业应用程序

WAP 与 PHP 程序设计之基础篇

WAP  与  PHP  程序设计之基础篇
下拉加载更多内容 ↓