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();