问题描述
- link如果是闭包,要防止lambda将局部变量带出,能不能举个例子,什么意思?
- link如果是闭包,要防止lambda将局部变量带出,能不能举个例子,什么意思?
解决方案
比如说
class A{ private Func<SomeType> foo; public void bar() { SomeType st = new SomeType(); foo = new Func<SomeType>(() => st); }}
按理说st是一个局部变量,但是作为闭包,它会被带出,生命周期被延长得和A类型的对象的生命周期一样。
时间: 2024-12-24 21:12:33