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