by Guest » 23 Jan 2025, 06:46
Ich möchte eine Event-Klasse erstellen, die Folgendes tut:
- speichert eine Aktion< /li>
hat eine Funktion, die diese Aktion aufruft
Zum Beispiel:
Code: Select all
public struct Event
{
private Action _callback;
public static Event operator +(Event evt, Action function)
{
evt._callback += function;
return evt;
}
public static Event operator -(Event evt, Action function)
{
evt._callback -= function;
return evt;
}
public void Invoke(int value)
{
_callback?.Invoke(value);
}
}
Die Sache ist: Ich möchte, dass Ereignisse flexibel sind und in der Lage sind, eine variable Anzahl von Parametern wie diesen zu verarbeiten
Und wenn man es auf diese Weise deklariert, hätte VictoryEvent eine Action (anstelle seiner ursprünglichen Action). ) und seine überladenen Funktionen würden dasselbe erwarten.
Wie kann ich so etwas implementieren?
Ich möchte eine Event-Klasse erstellen, die Folgendes tut:
[list]
[*]speichert eine Aktion< /li>
hat eine Funktion, die diese Aktion aufruft
[/list]
Zum Beispiel:
[code]public struct Event
{
private Action _callback;
public static Event operator +(Event evt, Action function)
{
evt._callback += function;
return evt;
}
public static Event operator -(Event evt, Action function)
{
evt._callback -= function;
return evt;
}
public void Invoke(int value)
{
_callback?.Invoke(value);
}
}
[/code]
Die Sache ist: Ich möchte, dass Ereignisse flexibel sind und in der Lage sind, eine variable Anzahl von Parametern wie diesen zu verarbeiten
[code]Event VictoryEvent;[/code]
Und wenn man es auf diese Weise deklariert, hätte VictoryEvent eine Action (anstelle seiner ursprünglichen Action). ) und seine überladenen Funktionen würden dasselbe erwarten.
Wie kann ich so etwas implementieren?