Kjara Kjara - 1 year ago 127
C# Question

C# define function with partial application as delegate

Consider the following method:

int Foo(string st, float x, int j)

Now I want to wrap it in a delegate of type
Func<float, int>
by providing values for the parameters
. But I don't know the syntax. Can someone help?

This is the idea (might look a bit Haskell-ish):

Func<float, int> myDelegate = new Func<float, int>(Foo("myString", _ , 42));
// by providing values for st and j, only x is left as a parameter and return value is int

Answer Source

This should do the trick:

Func<float, int> f = (x) => { return Foo("myString", x, 42); };

Partially applying functions the way you want to do it is currently only possible in F#, not in C#.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download