news 2026/10/13 14:40:47

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

作者头像

张小明

前端开发工程师

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

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

1. 委托概述

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

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

2. 声明委托类型

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

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

示例代码如下:

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

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

示例

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

40、C编程中的字符串、数值格式化、解析及可空类型等知识详解

C#编程中的字符串、数值格式化、解析及可空类型等知识详解 1. 字符串操作 在C#中,字符串是Unicode字符数组。例如, string s = "Hi there."; 声明并初始化了一个字符串变量 s 。调用 s.ToUpper() 方法会返回一个全大写的字符串副本,但原字符串 s 不会改…

作者头像 李华
网站建设 2026/10/7 6:05:46

【Open-AutoGLM沉思版深度解析】:揭秘国产大模型推理优化黑科技

第一章:【Open-AutoGLM沉思版深度解析】:揭秘国产大模型推理优化黑科技在国产大模型快速发展的背景下,Open-AutoGLM沉思版凭借其独特的推理优化架构,成为高性能本地化部署的标杆。该模型不仅兼容GLM系列架构,更通过动态…

作者头像 李华
网站建设 2026/10/7 3:56:07

YACReader全面体验:跨平台漫画阅读神器深度评测

YACReader全面体验:跨平台漫画阅读神器深度评测 【免费下载链接】yacreader This repo contains the code of YACReaders desktop version. 项目地址: https://gitcode.com/gh_mirrors/ya/yacreader 在数字漫画阅读的广阔天地中,YACReader以其卓越…

作者头像 李华
网站建设 2026/10/7 4:29:23

语雀内容迁移工具:轻松实现文档批量导出与格式转换

语雀内容迁移工具:轻松实现文档批量导出与格式转换 【免费下载链接】yuque-exporter 项目地址: https://gitcode.com/gh_mirrors/yuqu/yuque-exporter 还在为语雀文档迁移而烦恼?这款智能内容转换工具将为你提供完美的解决方案。无论你是个人用户…

作者头像 李华
网站建设 2026/10/10 5:05:30

GPT-SoVITS语音动态适应环境噪声的能力

GPT-SoVITS语音动态适应环境噪声的能力 在智能语音助手、有声内容创作和无障碍通信日益普及的今天,用户对个性化语音合成的要求早已不再局限于“能说话”,而是追求“像我一样自然地说话”。然而现实往往不那么理想:录音设备简陋、背景嘈杂、数…

作者头像 李华