Вызов лямбда-выражений при создании

В javascript обычно используются замыкания и создание, а затем сразу же вызывается анонимная функция, как показано ниже:

var counter = (function() {
    var n = 0;
    return function() { return n++; }
}());

Из-за строгой типизации это очень многословное в C #:

Func<int> counter = ((Func<Func<int>>)(() =>
{
    int n = 0;
    return () => n++;
}))();

Есть ли более элегантный способ чтобы заняться этим типом вещей в C #?

7
задан CodesInChaos 24 November 2011 в 19:54
поделиться