AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题
课时
评论
关于我们
开始
开始学习
立即开始学习
我的进度
课程
任务地图
课程
C#
C#
级别 54
委托和事件的常见错误
C# SELF
等级 54,
课时 0
分析在处理事件和委托时常见的失误:重复订阅 (
+=
)、忘记取消订阅 (
-=
,
IDisposable
)、处理器中的异常和通过
GetInvocationList()
逐个调用、在广播期间修改订阅、在
null
时调用以及安全的
?.Invoke
、正确的签名
EventHandler
/
EventHandler<T>
、只通过
OnEventName
调用、谨慎的访问器
add
/
remove
、关于
static
事件的陷阱、lambda 捕获问题和弱事件模式。另外给出命名和标准签名的建议。
关于组织代码的建议
C# SELF
等级 54,
课时 1
在 C# 中处理事件的实用规则:选择委托 (
EventHandler
),通过
OnEvent
模式来触发,使用
IDisposable
和
using
做好正确的订阅/取消订阅,线程安全的调用(
Invoke
),通过
EventArgs
做强类型,文档化、架构建议和反模式分析。
优化事件驱动编程
C# SELF
等级 54,
课时 2
如何让事件代码既快又可靠:event 和 委托 的开销,"重" 处理器的影响,异常处理,异步 fire-and-forget 调用,通过
EventHandlerList
节省内存,使用
lock
保证线程安全,自定义访问器
add
/
remove
,以及性能分析(
GetInvocationList
,
Task.WhenAll
)。实战、陷阱和最佳实践。
委托:进阶场景
C# SELF
等级 54,
课时 3
这节课我们会讲委托在 C# 的进阶用法:回调和异步(callbacks and async)、策略和比较器、lambda 与匿名方法、处理链、事件和响应式订阅、闭包、多播、控制反转和可扩展性、与
LINQ
的配合以及柯里化。会讲委托比较、序列化以及委托与事件(
event
)的区别。你还能看到关于
Action
/
Func
的实战例子、针对 DI/IoC 的建议和常见错误分析。
事件驱动编程示例 (
event
)
C# SELF
等级 54,
课时 4
一步步讲解在 C# 中事件和委托的实际用法:从带通知的简单聊天到 pub/sub 架构的信号、异步完成的处理、阻止后续处理器的取消机制以及线程安全的订阅者管理。展示了 WinForms/WPF/MAUI 的示例、动态订阅/退订、以及对
EventHandler
,
EventArgs
,
INotifyPropertyChanged
的使用,还会提醒常见错误和如何避免它们。
Please enable JavaScript to continue using this application.