事件的声明
1.声明一个委托
public delegate void EventHandler(object sender, System.EventArgs e);
2.声明一个事件
public event EventHandler Changed;
3.引发一个事件
public OnChanged(EnventArgs e)
{
if ( Changed != null)
{
Changed(this,e);
}
}
4.定义事件处理程序
public MyText_OnChanged(Object sender,EventArgs e)
{
...
}
5.订阅事件(将事件处理程序添加到事件的调用列表中)
myText.Changed += EventHandler(MyText_OnChanged);
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 事件的练习2
{
class Program
{
static void Main(string[] args)
{
MyClass1 A = new MyClass1();
MyClass2 B = new MyClass2();
A.OnMydele += new MyClass1.MyDele(B.MyM1);//5,向事件发行者订阅
A.Issue();//触发事件
Console.ReadKey();
}
}
class MyClass1 //A.声明MyClass类
{
public delegate void MyDele();//1,声明MyDele委托
public event MyDele OnMydele; //2,使用event关键词声明事件
public void Issue()//3,触发事件:方法触发事件
{
if(OnMydele !=null)
{
Console.WriteLine("事件被触发:");
OnMydele();//调用事件
}
}
}
class MyClass2//B.事件调用
{
public void MyM1() //4,声明事件调用的方法
{
Console.WriteLine("方法被事件调用");
}
}
}