Repository navigation
IT CSharp Events
Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
event consente ai gestori di essere firmati tramite += e rimossi tramite -=. L'evento viene generato dal tipo che lo ha dichiarato. Un gestore esterno detiene l'abbonato, quindi l'abbonamento deve essere terminato quando non è più necessario.
Salvare questo esempio separatamente come Example.cs. Eseguirlo indipendentemente dagli altri esempi di questa pagina.
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(); }Risultato:
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();Questi esempi descrivono eventi delle rispettive classi C#. Gli eventi di gioco sono forniti separatamente dall'host API; i loro nomi, argomenti e cicli di vita devono corrispondere alla documentazione dell'evento specifico.
Documentazione ufficiale: Eventi e gestori - Microsoft Learn.
ClassicUO — Bad Newbie & C# Scripts IDE