我正在经历将ActionScript项目移植到C#的有趣过程。我发现的一个有趣的功能是在ActionScript中进行非常轻松的类型检查。
作为一个例子 -
table = new Dictionary();
table["id1"] = func1;
table["id2"] = func2;
table["id3"] = func3;
table["id4"] = func4;
其中func1,func2,func3和func4都具有相同的参数类型,但其中一些返回void,并且一些返回对象类型在ActionScript中完全可以接受。
我打算用代表解决这个问题,直到我意识到他们有不同的回报类型。
有没有一种干净的方法可以在没有重构的情况下在C#中处理这个问题,如果有的话,它是什么?
[编辑]我并不宽恕原始代码的编写方式。它根据预期返回的内容(或不返回)来检查函数的id和处理方式。我可以重构这个,但宁愿整个项目移植,然后进行结构改进。
[编辑]移植代码是一种计算机语言解析器(解释器而不是编译器)。它使用计算机关键字作为表的字典中的键,调用适当的函数来执行这些命令。某些命令返回void,因为它们只是执行处理。一些返回值(例如GetVar函数)。