我有一个采用匿名函数参数的方法。该函数的参数由局部变量提供。
public void DoSomething<T>(Action<T> method) where T : new()
{
T instance = new T();
method.Invoke(instance);
}
我想防止创建闭包。完成后,局部变量应该超出范围DoSomething<T>
。有没有办法在编译时限制它?
这是我要避免的情况:
Foo capturedInstance = null;
DoSomething<Foo>(item => capturedInstance = item);
capturedInstance.Call();