How to create a list of methods then execute them?

This is a great use case for the Action generic delegate.

List<Action> functions = new List<Action>();
functions.Add(Move);

foreach (Action func in functions)
   func();

If you need parameters, I would use lambdas to abstract them away:

List<Action> functions = new List<Action>();
functions.Add(Move);
functions.Add(() => MoveTo(1, 5));

foreach (Action func in functions)
   func();

A delegate is akin to function pointers from C++, it holds what a function “is” (not a return value like in your example) so you can call it just like a regular function. The Action generic delegate takes no parameters and returns nothing, so it is ideal for generic “call these functions”.

MSDN for Action: Action Delegate

For more on the different types of delegates provided by.NET: https://stackoverflow.com/a/567223/1783619

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)