Repository navigation
DE CSharp Events
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
Mit event können Handler über += signiert und über -= entfernt werden. Das Ereignis wird von dem Typ ausgelöst, der es deklariert hat. Ein externer Handler hält den Abonnenten, sodass das Abonnement beendet werden muss, wenn es nicht mehr benötigt wird.
Speichern Sie dieses Beispiel separat als Example.cs. Führen Sie es unabhängig von den anderen Beispielen dieser Seite aus.
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(); }Ergebnis:
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();Diese Beispiele beschreiben Ereignisse ihrer eigenen C#-Klassen. Spielereignisse werden separat vom API-Host bereitgestellt; Ihre Namen, Argumente und Lebenszyklen müssen mit der spezifischen Ereignisdokumentation übereinstimmen.
Offizielle Dokumentation: Ereignisse und Handler – Microsoft Learn.
ClassicUO — Bad Newbie & C# Scripts IDE