终于搞清楚了c#中的事件和委托

c#中的事件和委托,今天可算给搞明白了。比较高兴。嘿嘿。
理解c#中的事件和委托,关键还是要理解委托。要明白多播委托是怎么个玩意儿。现在把我自己写得一个例子,贴出来让大家看看,如果有什么不对的地方,希望指正。
狗饿 狗叫 给吃的。
public class Starter
{
public static void Main()
{
dog dog1 = new dog();
dog1.dogbark += new bark(Handler);
dog1.hungry();
}
public static void Handler(object o, DogEventArgs e)
{
Console.WriteLine(”给你一根骨头,吃吧。”);
}
}

public delegate void bark(object o, DogEventArgs e);
public class dog
{
public event bark dogbark;

public void hungry()
{
if (dogbark != null)
{
DogEventArgs args = new DogEventArgs();
dogbark(this, args);
}
}
}
public class DogEventArgs : EventArgs
{
}

其中我们将狗叫理解成引起事件的原因,狗叫理解成事件,给吃的理解成事件处理函数。对应代码就是:hungry()函数是引起事件的发生。dogbark是事件,Handler是事件处理程序。

Leave a Reply