多层事件处理系统与委托

C# Hard delegates

任务 «多层事件处理系统与委托»

开发一个模拟多层事件处理系统的程序。输入是一系列命令。每条命令可以是:'ADD <层级> <处理器名称>' — 在指定层级(1到10的整数)添加一个处理器(一个无返回值、接受字符串的方法);'REMOVE <层级> <处理器名称>' — 从层级中移除一个处理器;'FIRE <层级> <事件>' — 用给定事件(字符串)调用指定层级的所有处理器。同一层级上的处理器按添加顺序调用。如果某个名称的处理器已存在于该层级,则不会重复添加。移除不存在的处理器时,不执行任何操作。处理器名称由拉丁字母和数字组成,最多20个字符。事件是任意不含空格的字符串,最多100个字符。

输入格式

在第一行,输入一个整数 N(1 ≤ N ≤ 1000)——表示命令的数量。接下来 N 行命令,格式为:ADD <level> <handler_name> 或 REMOVE <level> <handler_name> 或 FIRE <level> <event>。

输出格式

对于每个FIRE命令,输出一行,包含该层级所有处理程序调用的结果,以空格分隔,按调用顺序排列。如果该层级没有处理程序,则输出'NONE'。每个处理程序向控制台输出格式为'<handler_name>:<event>'的字符串。

main.cs