.Net中自定义事件的步骤与使用
来源:互联网 发布:js中遍历map 编辑:程序博客网 时间:2024/06/11 19:58
自定义事件的标准定义步骤为:
1,定义委托
2,定义事件发布者类
声明事件
定义事件参数类
定义事件的On方法(直接执行事件)
定义触发事件的方法(包括触发条件,当达到条件时调用On方法)
3,定义事件订阅者类(可以有多个订阅者类)
定义事件处理程序方法
4,注册事件
实例化发布者和订阅者
在发布者事件上绑定一个已实例化的以事件处理程序方法为参数委托,完成事件注册
5,使用事件
执行发布者中触发事件的方法,触发事件.
具体实例如下:*******************************************************************************************
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Delegate_Event
{
// 定义事件发布者类
public class Publisher
{
private int count;
public string name = "发布者";
// 定义委托
public delegate void NumberChangedEventHandler(Object sender, SomeEventArgs e);
public event NumberChangedEventHandler NumberChanged; // 声明事件
// 定义SomeEventArgs类,传递给订阅者所感兴趣的信息,这是一个类中类
public class SomeEventArgs : EventArgs
{
public readonly int count;
public SomeEventArgs(int count)
{
this.count = count;
}
}
//定义调用事件的OnXXX方法,以供其它触发方法调用
protected virtual void OnNumberChanged(SomeEventArgs e)
{
if (NumberChanged != null)
{ // 触发事件
NumberChanged(this, e);
}
}
//定义触发事件的方法
public void DoSomeThing()
{
for (int i = 0; i < 15; i++)
{
count++;
if (count >= 10)//触发条件
{
SomeEventArgs e = new SomeEventArgs(count);
OnNumberChanged(e);//调用方法,以引发事件
}
}
}
}
// 定义事件订阅者
public class Subscriber
{
//事件处理程序
public void OnNumberChanged(Object sender,Publisher.SomeEventArgs e) //注意这个方法名和发布者里的同名方法,它们参数不同,作用也不用.
{
Publisher publisher = (Publisher)sender;
Console.WriteLine("Subscriber notified: {0},count = {1}", publisher.name, e.count);
}
}
class Program
{
static void Main(string[] args)
{
Publisher pub = new Publisher();
Subscriber sub = new Subscriber();
pub.NumberChanged += new Publisher.NumberChangedEventHandler(sub.OnNumberChanged);
pub.DoSomeThing(); // 应该通过 DoSomeThing() 来触发事件
Console.ReadKey();
}
}
}
- .Net中自定义事件的步骤与使用
- .Net中自定义事件的步骤与使用
- vb.net中自定义事件的使用方法
- C#自定义事件的步骤
- c# 自定义事件的步骤
- iOS中自定义event原理分析与使用步骤
- 在asp.net中使用自定义事件(带参数)
- .NET中使用Delegate类型设计自定义事件
- spring中使用自定义的事件
- .net 中委托与事件的理解!
- xib文件的使用与封装自定义view的步骤
- 在C#中使用事件的基本步骤
- C#自定义事件的步骤介绍
- ASP.NET中自定义控件无法响应事件的问题
- .NET 中自定义事件的驱动(C#)
- ASP.NET中自定义控件无法响应事件的问题
- ASP.NET中DataList自定义的按钮触发事件
- .NET 中自定义事件的驱动(C#)
- Python中Socket一难点解决
- java实现随机的验证码的图片(第二种)
- test
- 查看Linux系统性能工具
- ActionScript 3.0 优化
- .Net中自定义事件的步骤与使用
- 戒指的戴法
- SAP MM--11(Pipeline Handling )
- 在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统(一)
- jquery小应用
- C3P0的监控
- SVN安装记录.[个人安装整理版]
- PHPNuke完全安装手册
- 中国的海洋权益争端