public void SetFunction <T1, T2>(Func <T1, T2, TResult> func)
 {
     _functionBuilder = new FunctionBuilder <T1, T2, T, TResult>(func);
     _paramTypes      = new Type[] {
         typeof(T1),
         typeof(T2)
     };
 }
 public void SetFunction <T1, T2, T3, T4, T5, T6>(Func <T1, T2, T3, T4, T5, T6, TResult> func)
 {
     _functionBuilder = new FunctionBuilder <T1, T2, T3, T4, T5, T6, T, TResult>(func);
     _paramTypes      = new Type[] {
         typeof(T1),
         typeof(T2),
         typeof(T3),
         typeof(T4),
         typeof(T5),
         typeof(T6)
     };
 }
 public void SetFunction(Func <TResult> func)
 {
     _functionBuilder = new FunctionBuilder <T, TResult>(func);
     _paramTypes      = new Type[] { };
 }