Well, CASE will give BY FAR the best performance. But there is another completely different way to do this.
First of all, there's no difference between methods and functions...just that in
VB you can have a method that is a SUB...but the only difference between a FUNCTION and a SUB is that the latter doesn't return a value. In C# and other languages, you would call them both functions and just say the function returns "void".
Anyway...I'm going to assume that all these methods that you will code up
(1) will be methods on the SAME CLASS. Presumably, methods on the PLAYER class.
(2) will either be methods that take no arguments or will all be methods that take the *same* arguments.
If either of those is not true, then you can *NOT* use a "universal" mechanism to call them. You'll at least have to divide them into groups of homogeneous functions (that is, functions on the same class and that use the same kinds of arguments).
You are going to use
VB.NET, yes? So look into using DELEGATES. That is, event handlers that can accept an ADDRESSOF a method. Thus you could, instead of storing the method *name* in some variable, store the ADDRESSOF that method.
This is not a trivial task and would take too long to explain here, but at least look into DELEGATES and ADDRESSOF in
VB.NET.
If you have a choice, you might consider coding in C#, instead. The C# syntax and methodology for delegates is easier to code and understand, in my opinion.