在 C# 中向列表添加函数并进行调用

为了帮助我学习C#,我正在将我用Lua编写的脚本转换为C#。

我想知道是否有可能向列表(Lua中的表)添加函数并调用它。

以下是我在Lua中的代码:

函数{函数() 打印(“Hello World!”) 结束}
功能[1]()

输出:Hello World!

在C#中,我正在使用列表。 例如:

var functions = new List</*我应该在这里放什么*/>();
functions.Add(/*以某种方式定义公共静态void */);

谢谢。

点赞
用户477420
用户477420

使用ActionFunc<TResult>根据您是否需要结果,使用lambda表达式以您需要的样式定义函数:

var functions = new List<Action>();
functions.Add(() => { Console.WriteLine("Here!"); }
functions[0]();
2015-02-08 05:53:42
用户4076001
用户4076001

太棒了!虽然我不能确定这是最好的答案,但这是我对这种情况的看法。

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中,Action经常与Task Parallel Library一起使用。

2015-02-08 05:59:11