C# 中的事件与集合:深入解析与应用
1. 事件的引入与问题解决
在 C# 编程中,委托虽然强大,但存在一些关键问题。委托结构的弱点可能会让程序员不经意间引入错误,主要体现在订阅和发布事件时的封装不足。
- 封装订阅问题 :使用赋值运算符(
=)将一个委托赋给另一个委托时,可能会覆盖之前的订阅。例如以下代码:
class Program
{
public static void Main()
{
Thermostat thermostat = new Thermostat();
Heater heater = new Heater(60);
Cooler cooler = new Cooler(80);
string temperature;
thermostat.OnTemperatureChange = heater.OnTemperatureChanged;
// Bug: 赋值运算符覆盖了之前的赋值
thermostat.OnTemperatureChange = cooler.OnTemperatureChanged;
Console.Write("Enter temperature: ");
temperature = Console.ReadLine();
thermostat.CurrentTemperature = int.Parse
超级会员免费看
订阅专栏 解锁全文

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



