Mehrstufiges Ereignisverarbeitungssystem mit Delegaten

C# Hard delegates

Aufgabe «Mehrstufiges Ereignisverarbeitungssystem mit Delegaten»

Entwickeln Sie ein Programm, das ein mehrstufiges Ereignisverarbeitungssystem modelliert. Die Eingabe besteht aus einer Folge von Befehlen. Jeder Befehl kann sein: 'ADD <Ebene> <Handler_Name>' — fügt einen Handler (eine Methode ohne Rückgabewert, die eine Zeichenkette akzeptiert) auf der angegebenen Ebene (ganze Zahl von 1 bis 10) hinzu; 'REMOVE <Ebene> <Handler_Name>' — entfernt einen Handler von einer Ebene; 'FIRE <Ebene> <Ereignis>' — ruft alle Handler der angegebenen Ebene mit dem gegebenen Ereignis (einer Zeichenkette) auf. Handler auf derselben Ebene werden in der Reihenfolge ihres Hinzufügens aufgerufen. Wenn ein Handler mit demselben Namen bereits auf der Ebene existiert, wird er nicht erneut hinzugefügt. Beim Entfernen eines nicht existierenden Handlers passiert nichts. Handlernamen bestehen aus lateinischen Buchstaben und Ziffern, bis zu 20 Zeichen. Ereignisse sind beliebige Zeichenketten ohne Leerzeichen, bis zu 100 Zeichen.

Eingabeformat

In der ersten Zeile eine ganze Zahl N (1 ≤ N ≤ 1000) — die Anzahl der Befehle. Danach N Zeilen mit Befehlen im Format: ADD <Ebene> <Handler_Name> oder REMOVE <Ebene> <Handler_Name> oder FIRE <Ebene> <Ereignis>.

Ausgabeformat

Für jeden FIRE-Befehl geben Sie eine Zeile aus, die die Ergebnisse des Aufrufs aller Handler dieser Ebene enthält, getrennt durch ein Leerzeichen, in der Reihenfolge ihres Aufrufs. Wenn es auf der Ebene keine Handler gibt, geben Sie 'NONE' aus. Jeder Handler gibt eine Zeichenkette der Form '<Handler_Name>:<Ereignis>' auf der Konsole aus.

main.cs