class C { internal static int Foo (T name, params object [] args) { return 2; } internal static int Foo (string name, params object [] args) { return 0; } internal static int InvokeMethod (string name, params object [] args) { return Foo (name, args); } public static int Main () { return InvokeMethod ("abc"); } }