1

我试图在不使用太多 if 语句(C#)的情况下加载不同的函数。我尝试使用 Lists,但 Unity 使用Action. 我在这里找到了一个很好的 c# 解决方案:

var methods = new Dictionary<string, Action>()
          {
              {"method1", () => method1() },
              {"method2", () => method2() }
          };

methods["method2"]();

同样的问题在这里Action

我进口的

using System.Collections.Generic;

我想念什么?

4

1 回答 1

1

除了System.Collections.Genericfor Dictionary,还需要导入Systemfor Action

添加using System;到文件的顶部。

通常,在 MSDN 上查找类型以查看其完整的命名空间。在这种情况下,Action 委托的 MSDN 页面指示其命名空间是“System”。因此,您要么必须using System;在代码顶部添加指令,要么在代码中包含完整的命名空间。因此,例如,您可以在没有using指令的情况下重写上面的代码,如果您有:

var methods = new System.Collections.Generic.Dictionary<string, System.Action>()
      {
          {"method1", () => method1() },
          {"method2", () => method2() }
      };

methods["method2"]();
于 2013-06-23T22:27:35.767 回答