是否可以将lambda表达式存储在数组C#中

我正在编写一个游戏AI引擎,我想在一个数组中存储一些lambda表达式/委托(多个参数列表)。

像这样的东西:

_events.Add( (delegate() { Debug.Log("OHAI!"); }) ); _events.Add( (delegate() { DoSomethingFancy(this, 2, "dsad"); }) ); 

在C#中有可能吗?

您可以改为List

 List _events = new List(); _events.Add( () => Debug.Log("OHAI!")); //for only a single statement _events.Add( () => { DoSomethingFancy(this, 2, "dsad"); //other statements }); 

然后调用单个项目:

 _events[0](); 

你可以使用System.Action。

 var myactions = new List(); myactions .Add(new Action(() => { Console.WriteLine("Action 1"); }) myactions .Add(new Action(() => { Console.WriteLine("Action 2"); }) foreach (var action in myactions) action();