Skip to content

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