Do С# lambdas существуют только во время компиляции?

Я правильно говорю, что лямбда-выражения существуют только во время компиляции, и после компиляции они становятся либо выражением (LambdaExpression?), либо делегатом?

Ответы

Ответ 1

Да. В дополнение к делегату lambdas становится сгенерированным методом. Делегат ссылается на этот метод. Если они закрывают переменные, метод становится методом экземпляра для сгенерированного класса, содержащего состояние закрытия.

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