委托与事件是什么关系?为什么要使用委托?

 我来答
陈学阳
2010-10-10 · TA获得超过2.8万个赞
知道大有可为答主
回答量:2.1万
采纳率:14%
帮助的人:5620万
展开全部
委托(C# 编程指南)

委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值,如下面的示例所示:

C#
public delegate int PerformCalculation(int x, int y);

与委托的签名(由返回类型和参数组成)匹配的任何方法都可以分配给该委托。这样就可以通过编程方式来更改方法调用,还可以向现有类中插入新代码。只要知道委托的签名,便可以分配自己的委托方法。

将方法作为参数进行引用的能力使委托成为定义回调方法的理想选择。例如,可以向排序算法传递对比较两个对象的方法的引用。分离比较代码使得可以采用更通用的方式编写算法。

委托概述
委托具有以下特点:

委托类似于 C++ 函数指针,但它是类型安全的。

委托允许将方法作为参数进行传递。

委托可用于定义回调方法。

委托可以链接在一起;例如,可以对一个事件调用多个方法。

方法不需要与委托签名精确匹配。有关更多信息,请参见协变和逆变。

C# 2.0 版引入了匿名方法的概念,此类方法允许将代码块作为参数传递,以代替单独定义的方法。

如何使用委托,请看
(VS.80).aspx

事件(C# 编程指南)

在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订户”。

在典型的 C# Windows 窗体或 Web 应用程序中,可订阅由控件(如按钮和列表框)引发的事件。可使用 Visual C# 集成开发环境 (IDE) 来浏览控件发布的事件,选择要处理的事件。IDE 会自动添加空事件处理程序方法和订阅事件的代码。有关更多信息,请参见如何:订阅和取消订阅事件(C# 编程指南)。

事件概述
事件具有以下特点:

发行者确定何时引发事件,订户确定执行何种操作来响应该事件。

一个事件可以有多个订户。一个订户可处理来自多个发行者的多个事件。

没有订户的事件永远不会被调用。

事件通常用于通知用户操作(如:图形用户界面中的按钮单击或菜单选择操作)。

如果一个事件有多个订户,当引发该事件时,会同步调用多个事件处理程序。要异步调用事件,请参见使用异步方式调用同步方法。

可以利用事件同步线程。

在 .NET Framework 类库中,事件是基于 EventHandler 委托和 EventArgs 基类的。

关于如何使用事件相关的知识,请看
(VS.80).aspx
这个可以看出他和委托的联系

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!

vaela
百度网友dba2512
2010-10-09
知道答主
回答量:21
采纳率:0%
帮助的人:8.8万
展开全部
只有声明委托才能声明事件
使用委托事件是程序中非常常用的,他看上去就像同时产生,举个例子,a窗体中有一个文本框,b窗体中也有一个文本框,但是a窗体和b窗体都已经存在,这时我要将a窗体文本框的值传入到b窗体的文本框中,最好的方法就是用委托时间来实现
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
V型孤独
推荐于2017-10-13 · 知道合伙人宠物行家
V型孤独
知道合伙人宠物行家
采纳数:433 获赞数:49644
安阳师范学院学生

向TA提问 私信TA
展开全部
  委托(C# 编程指南)

  委托是一种引用方法的类型。一旦为委托分配了方法,委托将与该方法具有完全相同的行为。委托方法的使用可以像其他任何方法一样,具有参数和返回值,如下面的示例所示:

  C#
  public delegate int PerformCalculation(int x, int y);

  与委托的签名(由返回类型和参数组成)匹配的任何方法都可以分配给该委托。这样就可以通过编程方式来更改方法调用,还可以向现有类中插入新代码。只要知道委托的签名,便可以分配自己的委托方法。

  将方法作为参数进行引用的能力使委托成为定义回调方法的理想选择。例如,可以向排序算法传递对比较两个对象的方法的引用。分离比较代码使得可以采用更通用的方式编写算法。

  委托概述
  委托具有以下特点:

  委托类似于 C++ 函数指针,但它是类型安全的。

  委托允许将方法作为参数进行传递。

  委托可用于定义回调方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
单手拿烟儿
2010-10-09
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
事件就是委托链!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式