C#委托详解

作者 : 慕源网 本文共1044个字,预计阅读时间需要3分钟 发布时间: 2022-04-26 共99人阅读

C#委托详解,我们经常听说委托,但是,它是什么?我们为什么需要它?如何使用它?

什么是委托?

委托它称为指向函数的指针。委托用于将方法作为参数传递给其他方法。它是一种类型,表示对具有特定参数列表和返回类型的方法的引用。实例化委托时,可以将其实例与具有兼容签名和返回类型的任何方法相关联。您可以通过委托实例调用该方法。事件处理程序是通过委托调用的方法。您可以创建自定义方法,并且当某个事件发生时,类(如Windows控件)可以调用您的方法。

为什么我们需要委托?

  • 委托允许将方法作为参数传递。
  • 它可用于定义回调方法。
  • 可以对单个事件调用多个方法。
  • 方法不必与委托类型完全匹配。

如何使用它?

让我们试着用一个例子来理解:

C#委托详解

在上面的例子中,我使用了一个LongRunningClass,它让LongRunningFunction执行一些长时间运行的任务。现在另一个类成员函数正在请求LongRunningFunction 开始操作并传递信息。为了实现这一点,我们首先要在LongRunningClass 中定义一个委托,并通过将方法作为参数传递来请求从另一个类传递信息。

委托的类型

  • 单一委托
  • 多播委托
  • 通用委托
    • Func 委托
    • Action委托
    • Predicate 委托

单一委托

它用于调用单个方法。

C#委托详解

多播委托

它用于调用多个方法。

注意事项:

  • 所有方法都将按照添加的顺序被调用。
  • 如果委托的返回类型不是 void,则将返回最后调用方法的返回值。
  • 如果委托有一个 out 参数,则 out 参数的值将是最后调用的方法分配的值。

C#委托详解

创建多播委托的另一种方法

C#委托详解

通用委托

它是在 .Net 3.5 中引入的,因此我们不需要定义委托实例来调用方法

  • Func委托
  • Action委托
  • Predicate 委托 

Func委托

  • 它是在 System 命名空间中定义的通用委托。
  • Func 委托必须返回一个值。
  • Func 委托可以有 0 到 16 个输入参数。
  • Func 委托不允许使用 ref 和 out 参数。
  • Func 委托的结果必须有 1 个输出参数。

C#委托详解

Action委托

  • Action委托与 Func 委托类型相同,只是它不返回任何内容。
  • Action委托不返回任何值。
  • Action委托可以有 0 到 16 个输入参数。
  • Action委托不允许使用 ref 和 out 参数。
  • 它可以与匿名方法和 Lambda 表达式一起使用。

C#委托详解

Predicate 委托

  • Predicate 与 Func 和 Action 委托类型相同,只是它必须接受一个输入参数并返回布尔类型。
  • Predicate 委托采用一个输入参数和布尔返回类型。
  • 匿名方法和 Lambda 表达式可以分配给 Predicate 委托

C#委托详解


慕源网 » C#委托详解

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录