委托和事件的区别

news/2025/11/26 20:11:35/文章来源:https://www.cnblogs.com/daiang/p/18893369

1.本质:委托是类型安全的函数指针,可以指向一个或多个方法。事件是对委托的封装,提供受控的发布-订阅模型。

2.关键字:delegate和event。

3.访问权限:委托公有或私有,可被外部直接调用或赋值。事件外部只能通过 += 和 -= 订阅/取消订阅,触发权仅限于声明事件的类内部。

4.设计原则

  • ​优先使用事件:
    当需要实现发布-订阅模型(如 UI 交互、模块解耦)时,事件能提供更安全的封装。
  • 直接使用委托:
    当需要灵活传递方法(如回调参数)或手动管理多播调用时,委托更合适。
特性​​委托​​事件​
封装性
外部触发权限
多播支持
空引用处理 手动检查 自动处理
典型用途 回调、动态调用 发布-订阅模式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/977605.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025:如何利用AI不再错过任何一个opening job - M-T

img { max-width: 60% !important; height: auto; display: block; margin: 0 auto 1em } .markdown-body img { max-width: 60% !important } 核心:利用MCP server省钱省力爬job list的邪修打法,亲测Indeed,LinkedI…

SIGIR会议聚焦包容性AI与多语言技术

本文介绍了SIGIR会议上关于构建更包容AI系统的研究,包括多语言仇恨言论检测技术和基于社交媒体的灾害检测系统,通过跨语言学习和特定领域嵌入技术提升模型性能。某机构在SIGIR:迈向更包容的AI SIGIR 2021会议即将召…

NeurlPS 2024! 扩散模型用于世界建模:视觉细节在Atari环境中至关重要| 计算机视觉 | 强化学习2

01 论文概述 论文名称:Diffusion for World Modeling: Visual Details Matter in Atari ——扩散模型用于世界建模:视觉细节在 Atari 环境中至关重要 👉一键直达论文 👉Lab4AI大模型实验室论文🌟 简介 在基于模…

48(11.28)

上了网课形势政策

Unclutter 黑五 Mac App 大包测评

今年 Unclutter 还是准时推出了 BLACK FRIDAY MAC APPS COLLECTION,这也是每年黑五 MacOS 软件最值得的大包之一。考虑到今年 BundleHunt 还表现得较为拉跨的情况下,这个大包的性价比就显得更高了。直接拿下整个大包…

详细介绍:VS Code 新旧版本 Remote-SSH 内网离线连接服务器方法(版本 ≤ 1.78.x 及 ≥ 1.79.0)

详细介绍:VS Code 新旧版本 Remote-SSH 内网离线连接服务器方法(版本 ≤ 1.78.x 及 ≥ 1.79.0)2025-11-26 20:01 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !i…

44(11.24)

上了统一建模语言,上了数据结构,上了Java课

47(11.27)

上了数据结构,上了排球课

46(11.26)

上了离散数学,上了马原

45(11.25)

上了工程实训,上了英语视听说

Python模块与包完全教程:从导入到封装发布(附实战)

模块(Module)和包(Package)是Python代码组织与复用的核心机制——模块让你告别“复制粘贴代码”,包让你能系统化管理多个模块。本文从零基础视角出发,详解模块的导入、自定义、包的创建与使用,甚至延伸到包的封…

29(11.3)

上了Java课,受益匪浅

[豪の算法奇妙冒险] 代码随想录算法训练营第八天 | 344-反转字符串、541-反转字符串II、Carl54-替换数字

LeetCode344 反转字符串、LeetCode541 反转字符串II、Carl54 替换数字代码随想录算法训练营第八天 | 344-反转字符串、541-反转字符串II、Carl54-替换数字LeetCode344 反转字符串题目链接:https://leetcode.cn/proble…

【Webpack连载一】入门简介。了解为什么需要Webpack,解决哪些开发中通病 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

31(11.5)

上了离散数学,上了马原

26 10.29

学习打游戏跑步

深入解析:GitLab 钩子 + Jenkins 自动化构建项目

深入解析:GitLab 钩子 + Jenkins 自动化构建项目pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

27.10.30

上了数据结构课程,上了体育课

抖音a_bogus,mstoken全参数爬虫逆向补环境2024-06-15

抖音a_bogus,mstoken全参数爬虫逆向补环境2024-06-15https://www.cnblogs.com/dy9527/p/19057109

深度学习50问

深度学习50问 一、深度学习基础(数学与本质)为什么深度神经网络具有“通用逼近能力”?它的局限性是什么? 深度模型为什么能泛化?泛化从何而来?为什么过参数化反而更容易泛化? 解释一下梯度消失与梯度爆炸的数学…