Lambdas хороши, поскольку они предлагают краткость и локальность и дополнительную форму инкапсуляции. Вместо того, чтобы писать функции, которые используются только после использования лямбда.
Не зная, как они работали, я интуитивно понял, что они , возможно, созданы только один раз. Это побудило меня создать решение, позволяющее ограничить объем члена класса за пределами частного до одной конкретной области, используя лямбда в качестве идентификатора области, которую она создала в.
Эта реализация работает, хотя, возможно, переполняет (все еще исследует ее), доказывая, что мое предположение является правильным.
Меньший пример:
class SomeClass
{
public void Bleh()
{
Action action = () => {};
}
public void CallBleh()
{
Bleh(); // `action` == {Method = {Void <SomeClass>b__0()}}
Bleh(); // `action` still == {Method = {Void <SomeClass>b__0()}}
}
}
Будет ли лямбда когда-либо возвращать новый экземпляр, или он всегда будет неизменным?