Lazy Tを使用してメモ化を実装したいのですが、初期化関数には静的コンテキストが必要なようです。
たとえば、次のコードはコンパイルを拒否し、非静的メンバーaおよびbにアクセスできないことを警告します。Lazyオブジェクトはそれ自体がインスタンスメンバーであり、静的コンテキストでは可視性がないため、これがなぜそうなのかは私にはわかりません。
public class SomeExpensiveCalculation
{
private int a;
private int b;
public Lazy<int> Result = new Lazy<int>(() => a + b); //nope!
}