Est-il possible de stocker une expression lambda dans le tableau C #

J’écris un moteur d’intelligence artificielle de jeu et j’aimerais stocker des expressions / delegates lambda (plusieurs listes d’arguments) dans un tableau.

Quelque chose comme ca:

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

Est-ce possible en C #?

Vous pouvez créer une List place:

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

Puis appelez un article individuel:

 _events[0](); 

vous pouvez utiliser 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();