将函数添加到列表并在C#中调用它们

时间:2015-02-08 05:47:06

标签: c# lua

为了帮助我学习c#,我将我在lua中创建的脚本转换为C#

我想知道是否可以在列表中添加一个函数(lua中的表)并调用它

这是我在Lua中所拥有的东西

functions{ function() print("Hello World!") end }
functions[1]()

Output: Hello World!

在C#中,我正在使用列表 实施例

var functions = new List</* What do I put here */>();
functions.Add(/* Somehow define a public static void here */);

谢谢。

2 个答案:

答案 0 :(得分:2)

根据您是否需要结果,使用ActionFunc<TResult>,使用lambda expression定义您要查找的样式的功能:

var functions = new List<Action>();
functions.Add(() => { Console.WriteLine("Here!"); }
functions[0]();

答案 1 :(得分:0)

真棒!好吧,我不能肯定地说这是最好的答案,但这是我对这种情况的看法。

class Program
{
    static void Main(string[] args)
    {
        var functions = new List<Action>();
        functions.Add(new Action(delegate
        {
            // Do stuff
            Console.WriteLine("Successfully did stuff.");
        }));
        functions[0].DynamicInvoke();
        Console.ReadKey();
    }
}

.NET中的操作与Task Parallel Library一起使用很多。