委托的兩個核心功能:一個是將函數作為參數傳遞,另一個是用來定義事件。
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 編輯過