В javascript обычно используются замыкания и создание, а затем сразу же вызывается анонимная функция, как показано ниже:
var counter = (function() {
var n = 0;
return function() { return n++; }
}());
Из-за строгой типизации это очень многословное в C #:
Func<int> counter = ((Func<Func<int>>)(() =>
{
int n = 0;
return () => n++;
}))();
Есть ли более элегантный способ чтобы заняться этим типом вещей в C #?