C # 4.0 анонимные функции - PullRequest
       23

C # 4.0 анонимные функции

2 голосов
/ 18 февраля 2011

Как мне сделать следующее, показанное в Javascript в C # 4.0:

var output = doSomething(variable, function() {
    // Anonymous function code
});

Я уверен, что видел это где-то раньше, но не могу найти никаких примеров.

Ответы [ 3 ]

5 голосов
/ 18 февраля 2011

Используя лямбда-выражение (без параметров, поэтому пустые скобки), это очень просто:

var output = doSomething(variable, () => {
    // Anonymous function code
});

В C # 2.0 синтаксис был немного длиннее:

SomeType output = doSomething(variable, delegate {
    // Anonymous function code
});
2 голосов
/ 18 февраля 2011
 var output = (x) => {
     // Anonymous function code
 };
2 голосов
/ 18 февраля 2011

Вы захотите заглянуть в Лямбда-выражения , хотя это не совсем как JavaScript, потому что C # работает немного иначе. Вы также можете проверить делегатов .

Пример кода:

namespace Test {
    class Tests {
        delegate string MyDelegate();

        public void Main(string[] args) {
            var output = doSomething("test1", () => { return "test2";} );
        }

        public string doSomething(string test, MyDelegate d) {
            return test + d();
        }
    }
}
...