Skip to content

KO 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