Skip to content

JA 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