C# 委托、Lambda 表达式与事件编程详解
1. 委托与 Lambda 表达式基础
委托是一种引用类型,可作为方法或回调的引用。它提供了一种强大的概念,允许将一组指令传递到不同的位置进行调用,而非在指令编码时立即执行。
在 C# 2.0 中引入了匿名方法的概念,而 C# 3.0 则带来了 Lambda 表达式。Lambda 表达式的语法取代了(但未完全消除)C# 2.0 的匿名方法语法。无论使用哪种语法,这些构造都允许程序员直接将一组指令赋值给一个变量,而无需定义包含这些指令的显式方法。这为在方法内部动态编程指令提供了极大的灵活性,通过名为 LINQ(Language Integrated Query)的 API 大大简化了集合的编程。
Lambda 表达式包含语句 Lambda 和表达式 Lambda,即语句 Lambda 和表达式 Lambda 都是 Lambda 表达式的类型。
2. 多播委托与发布 - 订阅模式
委托是发布 - 订阅模式的构建基础。在之前的讨论中,委托通常用于单个回调,但实际上一个委托变量可以引用一系列委托,形成一个链,这就是多播委托。通过多播委托,可以通过单个方法对象调用方法链,创建引用方法链的变量,并将委托作为参数传递方法。
C# 中多播委托的实现对应着观察者或发布 - 订阅模式,适用于将单个事件(如对象状态的变化)通知广播给多个订阅者的场景。
3. 温度控制示例:编码观察者模式
以温度控制为例,一个恒温器连接着加热器和冷却器。为了让设备能根据温度变化正确开关,需要将温度变化通知给这些设备。恒温器作为发布者,将温度变化发布给加热器和冷却器这两
超级会员免费看
订阅专栏 解锁全文
7

被折叠的 条评论
为什么被折叠?



