Вы можете использовать лямбда-выражения для задания некоторых параметров:
Action paramlessDelegate = ()=>MyFunc(value1,value2,value3)
Или, если вы хотите поместить значение только в несколько параметров:
Action<int> oneParamDelegate = (remainingParam)=>MyFunc(value1, remainingParam, value3)
В вашем примере:
class1.MethodTakingAMethodParameter(3, "foo", ()=>class1.MethodToPass(param1, param2, param3));