事件
using System;
namespace ConsoleApplication3
{
public delegate void EventHandle(string s);
class ClassA
{
public event EventHandle myEvent;
public void Go()
{
myEvent("事件被引发");//此句触发myEvent事件,(myEvent得到“实例化”),从而调动myEvent上的方法b_myEvent
}
}
class ClassB : ClassA
{
public void MyGo()
{
this.Go();//this (本类)有继承得到的Go(),虽然是继承的,但是也是自己的
}
}
class Class1
{
[STAThread]
static void Main(string[] args)
{
//b有两个Go方法,确切地说是 一个Go()方法和一个MyGo()方法
ClassB b = new ClassB();//ClassB 继承得到了 ClassA 中的“事件”myEvent 所以下面可以在b上调用myEvent
b.myEvent += new EventHandle(b_myEvent);//用b_myEvent方法挂载到委托上,此时并不会调用b_myEvent方法,只是把b_myEvent的指针地址传入EventHandle(delegate)
b.MyGo();//MyGo()去调用Go(),Go()触发myEvent事件
Console.ReadLine();
}
private static void b_myEvent(string s)
{
Console.WriteLine(s);
}
}
}


浙公网安备 33010602011771号