
#programowanie #javascript #csharp
Czytam sobie ostatnio YDKJS i zainteresowały mnie domknięcia. Postanowiłem więc spróbować osiągnąć domknięcie w C#, na podobnej zasadzie jak robi się to w JS. Wytworzyłem sobie cuś takiego:
class Program
{
static void Main(string[] args)
{
Func> MultiplyBy = delegate (int x)
{
return delegate (int a) { return a * x; };
};
var multiply = MultiplyBy(10);
Console.WriteLine(multiply(5));
Console.ReadKey();
}
}
Wygląda na to że działa. Tylko czy jest to aby domknięcie czy jedynie symulacja podobnego zachowania? Było nie było, jest to obejście za pomocą funktorów bo w C# funkcja nie jest obiektem.
Czytam sobie ostatnio YDKJS i zainteresowały mnie domknięcia. Postanowiłem więc spróbować osiągnąć domknięcie w C#, na podobnej zasadzie jak robi się to w JS. Wytworzyłem sobie cuś takiego:
class Program
{
static void Main(string[] args)
{
Func> MultiplyBy = delegate (int x)
{
return delegate (int a) { return a * x; };
};
var multiply = MultiplyBy(10);
Console.WriteLine(multiply(5));
Console.ReadKey();
}
}
Wygląda na to że działa. Tylko czy jest to aby domknięcie czy jedynie symulacja podobnego zachowania? Było nie było, jest to obejście za pomocą funktorów bo w C# funkcja nie jest obiektem.
- Najlepsze
- Wszystkie komentarze








W JSie funkcja jest obiektem z natury, więc dużo wygodniej takie fikołki robić +