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

ASP.NET
探讨:ASP.NET技术的学习顺序问题
关于ASP.NET在IIS一些问题的经验总结
ASP.NET中通过对话框方式下载文件
ASP.NET网络编程中常用到的27个函数集
ASP.NET生成静态网页的方法
ASP.NET 2.0中实现弹窗报警提示
复杂ASP.NET服务器控件调整小技巧
ASP.NET调用oracle存储过程实现快速分页
VB.NET实现窗体图标最小化到状态栏
ASP.NET技巧:DataGrid传统分页方式
ASP.NET里的事务处理
ASP.NET 2.0高级数据处理之数据绑定
ASP.NET多频道网站架构实现方法
.NET vs J2EE——面对SOA的荒谬与误解
ASP.NET 2.0中执行数据库操作命令之一
ASP.NET应用程序资源访问安全模型
ASP.NET 2.0中的Web和HTML服务器控件
对.NET Framework 反射的反思
带你走进ASP.NET(1)
带你走进ASP.NET(2)

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 46 ::
收藏到网摘: 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、事件的订阅
有了这三项,再在适时的时候触发该事件,相应的代码就会被执行

都怪语文没学好,惭愧