Repository navigation
KO 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