This seems like a really bad use of reflection, its important to note that reflection is slow and if you spell a name wrong or change a function name you will get errors.
A better idea is to use a delegate, here is an example (this is not tested, but you get the idea):
class TestClass
{
delegate void FunctionTemplate();
void Function1()
{
}
void Function2()
{
}
void Function3()
{
}
public void LoopFunctions(int times)
{
FunctionTemplate[] array = new FunctionTemplate[] { Function1, Function2, Function3 };
for(int i = 0; i < times; i++)
array[i]();
}
}
This is very simple, not over-engineered with anonymous methods or using slow reflection, plus if you rename Function1 to BlowUpMars it will rename it in the array and wherever else you are using it.