Not belleği uygulamak için Lazy T kullanmak istiyorum, ancak başlatma işlevi statik bir bağlam gerektiriyor gibi görünüyor.Neden Lazy <T> statik ortamlarda kısıtlanmış?
Örneğin, aşağıdaki kod statik olmayan üyeler bir ve b erişilemez uyarısında derlemeye reddeder. Bu neden Lazy nesnesinin bir örnek üye olduğu ve statik bir bağlamda görünürlüğü olmadığı için neden açık değildir.
public class SomeExpensiveCalculation
{
private int a;
private int b;
public Lazy<int> Result = new Lazy<int>(() => a + b); //nope!
}
Buradaki hata, Lazy'de değil, lambda ifadesinde. 'A' ve 'b' lambda bağlamında henüz mevcut değil. – MattDavey