Repository navigation
ZH TW CSharp Events
Codex edited this page Oct 11, 2026
·
2 revisions
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
event 允許透過 += 對處理程序進行簽名,並透過 -= 刪除處理程序。該事件由聲明它的類型引發。外部擁有的處理程序持有訂閱者,因此不再需要訂閱時必須終止訂閱。
請將此範例另存為 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主辦單位單獨提供;它們的名稱、參數和生命週期必須與特定事件文件相符。
ClassicUO — Bad Newbie & C# Scripts IDE