Я хотел бы использовать Lazy T для реализации мемоизации, но функция инициализации, похоже, требует статического контекста.
Например, следующий код отказывается компилироваться, предупреждая, что нестатические члены a и b недоступны. Мне не ясно, почему это так, поскольку объект Lazy сам является членом экземпляра и не имеет видимости в статическом контексте.
public class SomeExpensiveCalculation
{
private int a;
private int b;
public Lazy Result = new Lazy(() => a + b); //nope!
}