当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 下面真正开始讲事件的内容

ASP.NET
8月编程语言榜:.Net前景如何?
.NET调PHP Web Service的典型例子
ASP.NET热点问题解答14个
ADO.NET实用技巧两则
ASP遗留的二十大积习
从零开始学ASP.NET-基础篇
asp.net WebForm页面间传值方法
一个经典的ADO.NET入门例子
ASP.net中md5加密码的方法
C#Web应用程序入门经典学习笔记之二
程序中常用的种代码
页面包含的处理
几个C#常用正则表达式的总结
c#对xml的简单操作
获取当前url
检测含有中文字符串的实际长度
ASP.NET 数据访问类
利用Ajax传递Xml文档
给.net初学者的一些建议(共勉之)
asp.net网络数据库开发实例精解 源文件

ASP.NET 中的 下面真正开始讲事件的内容


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 182 ::
收藏到网摘: n/a


首先还是要问,什么是事件?
事件类似于异常,都是由对象触发的。不同的事件只不过是触发的时间,原因不一样罢了
所以有了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、事件的订阅
有了这三项,再在适时的时候触发该事件,相应的代码就会被执行

都怪语文没学好,惭愧