news 2026/6/10 20:16:58

30、C 委托:从基础到高级应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
30、C 委托:从基础到高级应用

C# 委托:从基础到高级应用

1. 委托概述

委托可以被看作是一个包含具有相同签名和返回类型的有序方法列表的对象。这个方法列表被称为调用列表。当调用委托时,它会依次调用调用列表中的每个方法。

与 C++ 中的函数指针类似,只有单个方法的委托与之有相似之处,但委托是面向对象且类型安全的。委托持有的方法可以来自任何类或结构体,只要它们的返回类型和签名(包括refout修饰符)与委托匹配。调用列表中的方法可以是实例方法或静态方法。

2. 声明委托类型

委托和类一样,都是类型。在使用委托类型创建变量和对象之前,必须先声明它。委托类型的声明类似于方法声明,有返回类型和签名,用于指定委托可以接受的方法形式。

委托类型声明与方法声明有两点不同:
- 以delegate关键字开头。
- 没有方法体。

示例代码如下:

delegate void MyDel ( int x );
3. 创建委托对象

委托是引用类型,有引用和对象。声明委托类型后,可以声明变量并创建对象。创建委托对象有两种方式:
- 使用new运算符的对象创建表达式,操作数包括委托类型名和作为调用列表第一个成员的方法名(可以是实例方法或静态方法)。
- 使用快捷语法,即仅使用方法说明符,因为方法名和兼容的委托类型之间存在隐式转换。

示例

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 12:32:58

31、深入理解接口:概念、实现与应用

深入理解接口:概念、实现与应用 1. 使用 IComparable 接口的示例 在编程中,排序是一项常见的操作。例如,我们可以对一个未排序的整数数组进行升序排序,代码如下: var myInt = new [] { 20, 4, 16, 9, 2 }; // 创建一个整数数组 Array.Sort(myInt); …

作者头像 李华
网站建设 2026/6/10 14:41:20

41、C编程:关键概念与实用技巧

C#编程:关键概念与实用技巧 1. Main方法的特性 Main方法是程序的入口点,它有一些重要的特性需要了解。首先,Main方法必须被声明为静态的,并且可以在类或结构体中声明。一个程序只能有一个符合四种可接受入口点形式的Main声明,但可以合法地声明其他名为Main的方法,只要它…

作者头像 李华
网站建设 2026/6/10 13:22:15

CXPatcher深度解析:让你的Mac完美运行Windows应用

CXPatcher深度解析:让你的Mac完美运行Windows应用 【免费下载链接】CXPatcher A patcher to upgrade Crossover dependencies and improve compatibility 项目地址: https://gitcode.com/gh_mirrors/cx/CXPatcher 想在苹果电脑上流畅运行Windows软件却屡屡碰…

作者头像 李华
网站建设 2026/6/10 13:22:01

3分钟学会HuggingFace模型高速下载:告别龟速等待

3分钟学会HuggingFace模型高速下载:告别龟速等待 【免费下载链接】HuggingFaceModelDownloader Simple go utility to download HuggingFace Models and Datasets 项目地址: https://gitcode.com/gh_mirrors/hu/HuggingFaceModelDownloader 还在为下载Huggin…

作者头像 李华
网站建设 2026/6/10 15:04:28

Screenbox媒体播放器:重新定义Windows平台多媒体体验

在数字化娱乐日益普及的今天,Windows用户对多媒体播放器的要求早已超越了基本的播放功能。Screenbox媒体播放器以其独特的设计理念和强大的技术架构,为Windows平台带来了一场真正的播放器革命。 【免费下载链接】Screenbox LibVLC-based media player fo…

作者头像 李华
网站建设 2026/6/10 10:58:33

5大理由告诉你为什么OpenAPI可视化工具是API开发必备神器

5大理由告诉你为什么OpenAPI可视化工具是API开发必备神器 【免费下载链接】openapi-gui GUI / visual editor for creating and editing OpenAPI / Swagger definitions 项目地址: https://gitcode.com/gh_mirrors/op/openapi-gui 在现代API开发领域,OpenAPI…

作者头像 李华