c# or c++? because the options available may not be the same.
If you don't want to use an if, how about a switch?
Though I suppose if you don't want an if, you don't want a switch.
This page:
C# FAQ: How call a method using a name string[
^]) gives some code that calls a method by name using MethodInfo.
To pass multiple params, you'd want something like:
methodInfo.Invoke(chosenMethod, new object[] {k, z});
But that's c#.