我试图加载不同的函数而不使用很多if语句(C#)。我尝试使用列表,但是使用Action
向Unity引发异常。
我在这里找到了一个很好的解决方案:
var methods = new Dictionary<string, Action>()
{
{"method1", () => method1() },
{"method2", () => method2() }
};
methods["method2"]();
此处与Action
我导入了
using System.Collections.Generic;
我想念什么?
答案 0 :(得分:1)
除System.Collections.Generic
的{{1}}外,您还需要为Dictionary
导入System
。
将Action
添加到文件顶部。
通常,在MSDN上查找类型以查看其完整名称空间。在这种情况下,Action delegate的MSDN页面表明其名称空间是&#34; System&#34;。因此,您必须在代码顶部添加using System;
指令或在代码中包含完整的命名空间。例如,如果你有:{/ p>,你可以在没有using System;
指令的情况下重写上面的代码
using