static void Main(string[] args) { System.Diagnostics.Stopwatch sw = System.Diagnostics.Stopwatch.StartNew(); ICallable <string> doHello = Table.GetCallable("foo", "hello"); ICallable <string> doHelloPerson = Table.GetCallable("foo", "person"); ICallable <int> doThree = IntTable.GetCallable("bar", "three"); Console.WriteLine(doHello.InvokeWithArgs().ToString()); Console.WriteLine(doThree.InvokeWithArgs().ToString()); Console.WriteLine(doHelloPerson.InvokeWithArgs("Bob").ToString()); ICallable <int> addition = IntTable.GetCallable("math", "add"); Console.WriteLine(addition.InvokeWithArgs(3, 3)); sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); Console.WriteLine(); sw.Reset(); sw.Start(); Console.WriteLine(Table.TableInfo.ToList()); Console.WriteLine(IntTable.TableInfo.ToList()); sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); Console.ReadKey(); }