szKarlen

function currying

Aug 16th, 2012
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.56 KB | None | 0 0
  1. public static Delegate To<T>(JavaScriptFunction function)
  2. {
  3.     var parameters = function.Method.GetParameters();
  4.     switch (parameters.Count())
  5.     {
  6.         case 0:
  7.             return new Func<T>(() => (T)function(null));
  8.         case 1:
  9.             return new Func<dynamic, dynamic> ((x) => (T) function(null, x));
  10.         case 2:
  11.             return new Func<dynamic, dynamic, T>((x, y) => (T)function(null, x, y));
  12.         case 3:
  13.             return new Func<dynamic, dynamic, dynamic, T>((x, y, z) => (T)function(null, x, y, z));
  14.     }
  15.     return null;
  16. }
Advertisement
Add Comment
Please, Sign In to add comment