委托和事件
.NET Framework 还可以广泛地将委托用于事件处理任务,如 Windows 或 Web 应用程序中的按钮 Click 事件。Java 中的事件处理通常通过实现自定义侦听器类完成,而 C# 开发人员则可以利用委托处理事件。事件的声明类似于具有委托类型的字段,区别在于事件声明前面有 event 关键字。事件通常被声明为 public,但允许使用任何可访问性修饰符。下面的示例演示了 delegate 和 event 的声明。
C#
复制代码
public delegate void CustomEventHandler(object sender, System.EventArgs e);
public event CustomEventHandler CustomEvent;
|
事件委托是多路广播的,这意味着它们可以对多个事件处理方法进行引用。通过维护事件的已注册事件处理程序列表,委托为引发事件的类担当事件发送器的角色。下面的示例演示如何为多个函数订阅事件。EventClass 类包含委托、事件和调用事件的方法。请注意调用事件只能从声明该事件的类内部进行。然后,TestEvents 类使用 += 运算符订阅事件,并使用 -= 运算符取消订阅。调用 InvokeEvent 方法时,它将激发事件,所有订阅了该事件的函数也同步激发,如下面的示例所示。
C#
复制代码
public class EventClass
{
public delegate void CustomEventHandler(object sender, System.EventArgs e);
public event CustomEventHandler CustomEvent;
public void InvokeEvent()
{
CustomEvent(this, System.EventArgs.Empty);
}
}
class TestEvents
{
private static void CodeToRun(object sender, System.EventArgs e)
{
System.Console.WriteLine("CodeToRun is executing");
}
private static void MoreCodeToRun(object sender, System.EventArgs e)
{
System.Console.WriteLine("MoreCodeToRun is executing");
}
static void Main()
{
EventClass ec = new EventClass();
ec.CustomEvent += new EventClass.CustomEventHandler(CodeToRun);
ec.CustomEvent += new EventClass.CustomEventHandler(MoreCodeToRun);
System.Console.WriteLine("First Invocation:");
ec.InvokeEvent();
ec.CustomEvent -= new EventClass.CustomEventHandler(MoreCodeToRun);
System.Console.WriteLine("\nSecond Invocation:");
ec.InvokeEvent();
}
}
|
输出
First Invocation:
CodeToRun is executing
MoreCodeToRun is executing
Second Invocation:
CodeToRun is executing
分享到:
相关推荐
C# 讲解委托和事件的好文章集合。 包括: C#_委托的妙文.doc C#委托和事件.doc C#_委托使用方法.doc C#_WndProc的使用方法.doc 文档内有详细代码,您一定可以用它学会委托和事件!
浅析C#委托和事件实例 当第一次听到委托、事件时感觉比较抽象、很好奇,当看到老师在课堂上利用委托和事件实现两个窗体调用时、感觉委托太神奇了,呵、不废话了…… C#委托和事件在做程序是很常见到的,对于像我...
网上看到一个童鞋用鸿门宴举了个C#委托和事件的应用实例,很有意思,就对其进行了扩展,使例子更形象易懂。
委托和事件教程,委托事件教程委托和事件教程,委托事件教程委托和事件教程,委托事件教程委托和事件教程,委托事件教程委托和事件教程,委托事件教程委托和事件教程,委托事件教程
C#委托和事件、事件的工作原理、简单是事件的定义,初步学习事件的使用
C#委托和事件,典型的实例,可供学习与参考
详细讲述了C#中委托和事件的语法及其使用方法,用程序例子深入浅出的讲述了不同的使用方法和这些使用方法的优劣。
资源在于分享,技术在于交流。C# 委托和事件,简单示例说明问题,你也可以。技术不复杂,对您有参考意义就是我最大的贡献。
对c#的委托和事件一直理解的不够透彻,这个资料能够全面详细的讲述了委托和事件。值得一读。与君共享
学习C#毕竟之路,对事件编程,入门级介绍,全面而且细致
C# 中的委托和事件,C# 中的委托和事件,C# 中的委托和事件
c#委托和事件简单示例
这个是关于委托和事件的一些教程,希望能给大家在委托和事件上的理解带来帮助
c# 委托和事件实例学习.代码分析全集.
详细的讲解了C#里难于理解的委托和事件,对于初步学习C#的学者很有好处
c#委托和事件的讲解,个人认为非常通俗易懂,看过之后可以清楚的了解和理解 ps:高清pdf版