public static object Call <T1, T2, T3, T4>(Callee callee, T1 arg1, T2 arg2, T3 arg3, T4 arg4) { return(callee.Invoke(arg1, arg2, arg3, arg4)); }
public static object Call <T>(Callee callee, T arg) { return(callee.Invoke(arg)); }
public static object Call <T1, T2>(Callee callee, T1 arg1, T2 arg2) { return(callee.Invoke(arg1, arg2)); }
public static object Call(Callee callee) { return(callee.Invoke()); }