Вы можете создать словарь (при условии, что код операции является целым числом
Dictionary<int, Action> actions = new Dictionary<int, Action>();
actions[7] = () => Console.WriteLine("hello World");
для выполнения кода операции "7" вы можете сделать
actions[7]();
, если вы хотите, чтобы он был более устойчивым:
Action action;
if (actions.TryGetValue(7, out action))
action();
// else illegal opcode
Если вы хотите загрузить словарь действий из файла, это немного сложнее
Вы можете вызвать статический метод ConsoleApplicationTest.Program.MyMethod()
через словарь, подобный этому
namespace ConsoleApplicationTest
{
public class Program
{
public static void MyMethod()
{
Console.WriteLine("MyMethod called");
}
}
}
Диктонар может выглядеть так
Dictionary<int, MethodInfo> dynamicActions = new Dictionary<int, MethodInfo>();
dynamicActions[7] = Assembly.GetExecutingAssembly().GetType("ConsoleApplicationTest.Program").GetMethod("MyMethod", BindingFlags.Public | BindingFlags.Static);
и метод будет вызываться так
MethodInfo method;
if (dynamicActions.TryGetValue(7, out method))
method.Invoke(null, new object[0]);