Skip to content

ZH TW CSharp Events

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

事件和處理程序

手冊C# · 範例UO

event 允許透過 += 對處理程序進行簽名,並透過 -= 刪除處理程序。該事件由聲明它的類型引發。外部擁有的處理程序持有訂閱者,因此不再需要訂閱時必須終止訂閱。

簡單範例 (Example.cs)

請將此範例另存為 Example.cs,並與本頁其他範例分開執行。

Example.cs:

// PROJECT-EXAMPLE
var source = new Source();
source.Changed += () => System.Console.WriteLine("Changed");
source.Raise();
class Source { public event System.Action? Changed; public void Raise() => Changed?.Invoke(); }

結果:

Changed
sealed class Progress
{
    public event Action<int>? Changed;
    public void Report(int value) => Changed?.Invoke(value);
}

var progress = new Progress();
Action<int> handler = value => UO.Print($"Progress={value}");
progress.Changed += handler;
progress.Report(1);
progress.Changed -= handler;
sealed class Signal
{
    public event EventHandler? Ready;
    public void Raise() => Ready?.Invoke(this, EventArgs.Empty);
}

var signal = new Signal();
signal.Ready += (_, _) => UO.Print("Ready");
signal.Raise();

這些範例描述了它們自己的 C# 類別的事件。遊戲賽事由API主辦單位單獨提供;它們的名稱、參數和生命週期必須與特定事件文件相符。

官方文件:事件和處理程序 - Microsoft Learn。

Clone this wiki locally