c#之基础语法 event 如何触发回调事件
时间:2010-11-25 来源:陈力
延续前面的文章,
//MyDelegate d = new MyDelegate(p.InstanceMethod);
//d(); //以委托为中介,进行转换,进而可以以把函数 作为函数的参数传递,有点拗口。
但是有另外一种方式来,实现同样的情况,暂时只能给出这样的一个类比,进而说明问题的本身。
函数回调,不过在回调之前要绑定,绑定就要用到event ,代码如下
代码 public delegate void MyDelegate(); // delegate declaration
public interface I
{
event MyDelegate MyEvent;
void FireAway();
}
public class MyClass : I
{
public event MyDelegate MyEvent;
public void FireAway()
{
if (MyEvent != null)
MyEvent();
}
}
public class MainClass
{
static private void f()
{
Console.WriteLine("This is called when the event fires.");
}
static public void Main()
{
I i = new MyClass();
i.MyEvent += new MyDelegate(f); //进行事件绑定
i.FireAway(); //调用类的方法 -----> MyEvent(); -->回调 f
}
}
相关阅读 更多 +