Repository navigation
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 хоста; їхні імена, аргументи та життєвий цикл мають відповідати документації конкретної події.
Офіційна документація: Події та обробники – Microsoft Learn.
ClassicUO — Bad Newbie & C# Scripts IDE