C#委托

· 浏览次数 : 0

小编点评

**C# 委托委托是什么?** 委托是一种指向方法的引用。它允许您将方法存储在变量中,并像调用普通方法一样调用它们。委托通常用于事件处理 和异步编程。 **基本语法定义委托类型。** ```csharp public delegate <返回值类型> 委托名(&<参数类型列表>); ``` * **public**: 表示委托是公开的。 * **<返回值类型>**: 表示委托返回的类型。 * **委托名**: 表示委托的名称。 * **(&<参数类型列表>)**: 表示委托的参数类型列表。 **创建委托实例** ```csharp private delegate string MyDelegate(string str); MyDelegate myDelegate = MyMethod; ``` * **MyMethod**: 表示要执行的方法的名称。 * **myDelegate**: 变量名称,存储委托。 **调用委托** ```csharp myDelegate("Hello World!\") ``` **委托链** ```csharp MyDelegate myDelegate = MyMethod; myDelegate += MyMethod2; //委托链(多播),先调用 MyMethod,在调用 MyMethod2委托的常见用法事件处理:事件通常使用委托来表示。当事件发生时,委托将调用所有已注册的事件处理程序。 ``` **使用委托** * **事件处理程序**: 使用委托来处理事件。 * **异步方法**: 使用委托来表示回调方法。 * **数据转换**: 使用委托来将一种类型的数据转换为另一种类型。

正文

C# 委托

委托是什么?

** 委托定义一种类型,该类型封装一个或多个方法(一个或多个方法指向委托实例)。**
委托是一种指向方法的引用。它允许您将方法存储在变量中,并像调用普通方法一样调用它们。委托通常用于事件处理 和异步编程。

基本语法

  1. 定义委托类型。
    public delegate <返回值类型> 委托名(<参数类型列表>);
  private  delegate string MyDelegate(string str);
  1. 创建委托实例(变量)。
    <委托类型> 委托变量名;
  MyDelegate myDelegate = MyMethod;
  1. 调用实例,执行方法。委托变量名(参数1, 参数2, ...);
myDelegate("Hello World!")
  1. 委托链(多播委托) 。调用实例后会执行多个方法。
MyDelegate myDelegate = MyMethod;
myDelegate += MyMethod2; //委托链(多播),先调用 MyMethod,在调用 MyMethod2

委托的常见用法

事件处理:事件通常使用委托来表示。当事件发生时,委托将调用所有已注册的事件处理程序。

异步编程:异步方法通常使用委托来表示回调方法。当异步操作完成时,回调方法将被调用。

数据转换:委托可用于将一种类型的数据转换为另一种类型。

总结

委托是 C# 中一项强大的功能,可用于提高代码的可重用性、可读性和灵活性。您应该在代码中尽可能使用委托。

引用

  1. 博文示例代码 https://github.com/chi8708/DotNetNote/blob/master/Note.Basic/04Delegate.cs

  2. 参考文献

与C#委托相似的内容:

C#委托

目录C# 委托委托是什么?基本语法委托的常见用法总结引用 C# 委托 委托是什么? ** 委托定义一种类型,该类型封装一个或多个方法(一个或多个方法指向委托实例)。** 委托是一种指向方法的引用。它允许您将方法存储在变量中,并像调用普通方法一样调用它们。委托通常用于事件处理 和异步编程。 基本语法

详解C#委托与事件

在C#中,委托是一种引用类型的数据类型,允许我们封装方法的引用。通过使用委托,我们可以将方法作为参数传递给其他方法,或者将多个方法组合在一起,从而实现更灵活的编程模式。委托类似于函数指针,但提供了类型安全和垃圾回收等现代语言特性。 基本概念 定义委托 定义委托需要指定它所代表的方法的原型,包括返回类

C# - 能否让 SortedSet.RemoveWhere 内传入的委托异步执行

若想充分利用 `RemoveWhere` 带来的性能优势,建议传入判断是否删除元素的委托内采取同步操作。若一定要在该委托内使用异步操作,可以采用本文中绕行的方法,但摈弃了 `RemoveWhere` 所带来的性能优势。

C#泛型

目录C#泛型概述什么是泛型?泛型有什么用?基本语法1.泛型方法 Method2.泛型类 class GenericClass{}3.泛型接口 public interface GenericInterface{}4.泛型委托 public delegate void Generic

C#事件

C#事件 概述 定义 类或对象可以通过事件向其他类或对象通知发生的相关事情。 发送(或引发)事件的类称为“发布者”,接收(或处理)事件的类称为“订阅者”。 事件是一种特殊的多播委托,是委托实例变量, 事件只能在类的内部定义,只能从声明它的类中进行调用。 外部只能订阅和取消订阅事件。 事件的组成部分

Lakehouse 还是 Warehouse?(1/2)

Onehouse 创始人/首席执行官 Vinoth Chandar 于 2022 年 3 月在奥斯汀数据委员会发表了这一重要演讲。奥斯汀数据委员会是“世界上最大的独立全栈数据会议”,这是一个由社区驱动的活动,包括数据科学、数据工程、分析、机器学习 (ML)、人工智能 (AI) 等。 Vinoth C

C# 开发技巧 轻松监控方法执行耗时

前言 MethodTimer.Fody 是一个功能强大的库,可以用于测量 .NET 应用程序中的方法的执行时间。允许你在不修改代码的情况下,自动地测量和记录方法的执行时间。 这个工具是基于.NET的 weaving 技术,通过修改IL(Intermediate Language,中间语言)代码来插入

C#开源、简单易用的Dapper扩展类库 - Dommel

前言 今天大姚给大家分享一个C#开源(MIT License)、免费、简单易用的Dapper扩展类库,帮助.NET开发者使用Dapper的CRUD操作变得更简单:Dommel。 项目特性 Dommel 使用 IDbConnection 接口上的扩展方法为 CRUD 操作提供了便捷的 API。 Dom

C语言指针易混淆知识点总结

指针 定义 指针是一个变量,存储另一个变量的内存地址,它允许直接访问和操作内存中的数据,使得程序能够以更灵活和高效的方式处理数据和内存。 获取变量地址:使用取地址符 &。 访问地址上的数据:使用解引用符 *。 例子1 指针是存储另一个变量地址的变量。通过使用取地址符 & 和解引用符 *,我们可以灵活

C++如何在main函数开始之前(或结束之后)执行一段逻辑?

1. 问题 2. 考察的要点 3. 解决策略 3.1. 方案一:使用GCC的拓展功能 3.2. 方案二:使用全局变量 3.3. 方案三:atexit 4. Demo测试 4.1. 测试代码 4.2. 执行结果 5. 程序异常退出场景 5.1. 存在的问题 5.2. 解决方案 5.2.1. 原理 5.