C#委托(Delegate)的两大作用
|
admin
2025年6月21日 22:58
本文热度 280
|
委托的两个核心功能:一个是将函数作为参数传递,另一个是用来定义事件。
1. 将函数作为参数传递(实现回调机制)
委托允许你将方法(函数)的引用作为参数传递给其他方法,从而实现回调(Callback)或高阶函数的机制(高阶函数是指可以接受函数作为参数,或者返回函数作为结果的函数)。这在事件处理、异步编程(如 BeginInvoke
/EndInvoke
)、LINQ 查询等场景中非常有用。
示例:
SyntaxEditor Code Snippet
void Main()
{
ProcessMessage(Console.WriteLine, "Hello, Delegate!");
}
void ProcessMessage(MyDelegate callback, string message)
{
callback.Invoke(message);
}
delegate void MyDelegate(string message);
2. 定义事件(Event)
事件(event
)是基于委托定义的,它提供了一种发布-订阅(Publish-Subscribe) 机制,允许对象在特定动作发生时通知其他对象。
示例:
SyntaxEditor Code Snippet
void Main()
{
var button = new Button();
button.Clicked += (sender, e) => Console.WriteLine("按钮被按下!");
button.Click();
}
public class Button
{
public event EventHandler Clicked;
public void Click()
{
Clicked?.Invoke(this, EventArgs.Empty);
}
}
阅读原文:https://mp.weixin.qq.com/s/Og8OkoKx9SQD6PWifglGjw
该文章在 2025/6/23 14:13:43 编辑过