我想使用Lazy T来实现记忆,但初始化函数似乎需要静态上下文。
例如,以下代码拒绝编译,警告非静态成员a和b不可访问。我不清楚为什么会这样,因为Lazy对象本身就是一个实例成员,并且在静态上下文中没有可见性。
public class SomeExpensiveCalculation
{
private int a;
private int b;
public Lazy<int> Result = new Lazy<int>(() => a + b); //nope!
}