浅析C#事件处理机制

本文介绍了C#事件处理机制的工作顺序,包括定义事件、初始化事件、触发事件。阐述了事件与委托的关系,以及如何使用委托传递和调用方法。通过示例代码展示了如何在类之间实现事件的订阅和触发,帮助理解C#中的事件处理流程。
摘要由CSDN通过智能技术生成

C#事件处理机制工作顺序:

1、给某个类定义一个事件(事件相当于一个委托的实例);

2、给某个类的对象的事件进行初始化(即给它new一个委托,该委托包含一个事件处理函数);

3、调用该对象的事件或系统自动触发该事件(例如命令按钮的click事件);

 

事件简介:

  任何进行过图形用户界面开发的编程人员都会知道事件的概念。当用户在使用程序的时候,用户必然要和程序进行一定的交互。比如当用户点击窗体上的一个按钮后,程序就会产生该按钮被点击的事件,并通过相应的事件处理函数来响应用户的操作。这样用户的直观感觉就是程序执行了我要求的任务了。当然,事件并不一定是在和用户交互的情况下才会产生的,系统的内部也会产生一些事件并请求处理的,比如时钟事件就是一个很好例子。不过要介绍C#中的事件处理机制(扩展到更广的范围便是整个.Net框架),我们首先得明白一个叫"委托"的概念。

  C#中的委托:

  委托,顾名思义,就是中间代理人的意思。C#中的委托允许你将一个对象中的方法传递给另一个能调用该方法的类的某个对象。你可以将类A中的一个方法m(被包含在某个委托中了)传递给一个类B,这样类B就能调用类A中的方法m了。同时,你还可以以静态(static)的方式或是实例(instance)的方式来传递该方法。所以这个概念和C++中的以函数指针为参数形式调用其他类中的方法的概念是十分类似的。

  委托的概念首先是在Visual J++中被提出来的,现在C#也应用了委托的概念,这也可谓是"拿来主义"吧。C#中的委托是通过继承System.Delegate中的一个类来实现的,下面是具体的步骤:

  1. 声明一个委托对象,其参数形式一定要和你想要包含的方法的参数形式一致。

  2. 定义所有你要定义的方法,其参数形式和第一步中声明的委托对象的参数形式必须相同。

  3. 创建委托对象并将所希望的方法包含在该委托对象中。

  4. 通过委托对象调用包含在其中的各个方法。

  以下的C#代码显示了如何运用以上的四个步骤来实现委托机制的:

using System;
file://步骤1: 声明一个委托对象
pub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值