2025-12-13 C中的匿名方法与Lambda表达式的演进 C中的匿名方法与Lambda表达式的演进 此外,Lambda表达式还支持多语句形式,用大括号包裹复杂逻辑,兼顾简洁与功能:csharp people.ForEach(p => { p.LastLogin = DateTime.Now; Console.WriteLine($"已更新用户 {p.Name}"); });这种灵活性使得Lambda迅速成为现代C#开发的核心工具之一。 2025年12月13日 14 阅读 0 评论
2025-12-06 C中的Lambda表达式:让匿名方法更简洁优雅 C中的Lambda表达式:让匿名方法更简洁优雅 在C#的编程世界中,Lambda表达式是一种强大而简洁的语法工具,它极大地简化了匿名方法的编写方式,使代码更加清晰、紧凑和易于维护。从.NET Framework 3.5开始引入以来,Lambda表达式已经成为现代C#开发中不可或缺的一部分,尤其在LINQ查询、事件处理和函数式编程风格中广泛应用。传统的匿名方法通过delegate关键字定义,虽然避免了为简单逻辑单独创建命名方法的繁琐,但其语法仍然显得冗长。例如,我们想要定义一个简单的加法操作并传递给一个委托变量:csharp Func<int, int, int> add = delegate(int x, int y) { return x + y; };这段代码功能明确,但包含了许多“噪音”——delegate关键字、参数类型的重复声明以及必须使用大括号和return语句。当逻辑简单时,这种写法显得不够轻盈。Lambda表达式的出现正是为了解决这一问题。它使用=>运算符(读作“goes to”)将参数列表与表达式或语句块连接起来,从而以极简的方式表达相同逻辑:csharp Func<int, ... 2025年12月06日 22 阅读 0 评论
2025-07-13 深入理解C事件机制:从委托到观察者模式的演化 深入理解C事件机制:从委托到观察者模式的演化 一、什么是C#事件?在C#中,事件(Event)本质上是一种特殊形式的委托(Delegate),它遵循"发布-订阅"模型。就像现实中的杂志订阅——出版社(事件发布者)定期发出期刊,订阅者(事件监听者)会自动收到通知,但双方无需知道彼此的具体细节。csharp // 典型的事件声明 public class Publisher { public event EventHandler<EventArgs> OnPublished; // 事件声明 }二、事件机制的三大核心要素1. 委托类型:事件的底层支撑委托就像类型安全的函数指针,定义事件能接受的方法签名。.NET内置的EventHandler<T>是最常用的事件委托类型。csharp public delegate void EventHandler<TEventArgs>(object sender, TEventArgs e);2. 事件声明:安全的封装器与普通委托不同,事件通过event关键字严格限制外部访问: - 外部只能+=或-=操作符 - 仅类内部可以触发事件(invok... 2025年07月13日 86 阅读 0 评论