关于C#委托和事件的问题:刚学了委托和事件 ,不理解其中的概念 ,求解

求解C#委托和事件的概念,要深入简出,浅显直白的哦... 求解C#委托和事件的概念,要深入简出,浅显直白的哦 展开
 我来答
th79d
2011-07-02 · TA获得超过265个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:253万
展开全部
当用户单击控件,或者鼠标停留在某个区域,将产生一个事件,事件由控件类或窗口类提供,例如Button类当按钮按下时发出通知。
为了编程方便,常将引发事件的程序放在单独的模块或者组件,组件通常是一个类。例如控件类或窗口类都是单独的类。当发生事件时,发送类(或称控件类)将事件通知主程序类或接受类,并传递有关的参数。执行通知的手段是绑定一个方法,接受类将方法绑定到发送类的事件,当发送类发事件时,接受类中绑定到事件的方法被执行。
事件是委托类型,可以采用加法赋值运算符+=将方法和事件绑定。你可以查看WinForm程序的Designer.cs,里面的控件处理程序都是+=符号绑定事件处理程序。接收类必须具有与事件相同签名(如委托签名)的方法。然后,该方法(称为事件处理程序)可以采取适当的操作来响应事件。但是编程员不需要事先费力地在接受类构造绑定事件的方法,当输入符号+=时,编程系统提示按Tab键自动添加绑定方法的名称,第二次按Tab键自动添加方法的参数,并与发送类的委托签名一致。
.NET Framework中事件的签名,通常第一个参数为引用事件源的对象,第二个参数为一个传送与事件相关的数据的类。但是在C#语言中并不强制使用这种形式,只要事件签名返回void,其他方面可以与任何有效的委托签名一样。
关键字event声明事件。委托是事件的基础,事件的类型必须是委托类型,因此声明事件前先声明委托。一个简单的例子如下:
public delegate void Handler
class test
{
public event Handler OnClick;
}
这里先在类的外部声明委托Handler,然后在类的内部用关键字event声明事件,也可以在类的内部声明委托。OnClick是Handler类型,由委托Handler代理事件的实现,封装一个方法实现事件。
委托返回类型必须是void,但可以带有参数,例如:
public delegate void TestEventDelegate(object sender, System.EventArgs e);
事件和方法一样具有签名,签名包括名称和参数列表。事件的签名通过委托类型来定义,委托的参数列表就是事件的列表。
因篇幅有限,不能举例说明,请看我的博客,在百度网页栏目搜163博客danyaody,第3章例3-14。
wuxianlong_963
2011-07-02 · 超过10用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:43.5万
展开全部
说通俗一点,接口是类的规范,那么委托可以理解为方法的一种规范,只要符合这个委托的规范的方法,都可以通过这个委托去执行这类方法,只要把方法注册到这个委托就行了
事件就是在委托之上的,事件一旦触发,那么所有注册到这个的事件都会通过委托去执行
这个只是我个人的理解,你最好是多做实例,然后慢慢形成自己的理解方式
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-07-06
展开全部
For example:2003
this.Button1.Click += new System.EventHandler(this.Button1_Click);
这就是定义的一个委托
这这里,委托的作用就是让动作和事件联系起来,事件的执行都是通过委托来实现的.

委托在多线程编程,定义事件,事件处理函数中使用.委托可以看作封装以前C++中的函数指针的一些信息,在类型上更安全.它是线程上的调用,可以不理会调用事件是否成功执行.
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Dirichle
2011-07-02 · TA获得超过2543个赞
知道小有建树答主
回答量:758
采纳率:100%
帮助的人:220万
展开全部
委托是函数指针(地址)的一个强类型的封装,事件可以看做是一个特殊的受限制的委托实例,只能用+= -=来操作。理论上,事件可以实现的,委托肯定可以的。在平常应用中,委托用域回调函数,事件用来做外发接口。
不明白的,可以继续追问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
surwe
2011-07-08 · TA获得超过631个赞
知道小有建树答主
回答量:1339
采纳率:44%
帮助的人:243万
展开全部
简单的说就是:
接力赛跑,等传递者将接力棒给你的同时,你就要立即开始继续跑步(但是在接力棒到达你这边的时候,你就一直在等待着传递者的到来),完成整个比赛的过程
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式