2010-12-11 14 views

Odpowiedz

25

Spróbuj tego:

Lazy<myClass> myLazy = new Lazy<myClass>(() => new myClass(InstanceName)); 

Pamiętaj, że wyrażenie jest oceniane leniwie, więc jeśli zmienisz wartość zmiennej InstanceName przed konstruktor nazywa to nie może robić to, czego oczekują.

+0

iz tym samym 'InstanceName' chciałbym uzyskać obiekt z pamięci podręcznej? – Xaqron

1

Nie można, Lazy<T> wymaga konstruktora bez parametrów. Można jednak użyć konstruktora Lazy<T>(Func<T>) za pomocą metody, która inicjuje klasę.

8

Lazy ma dwa sposoby inicjowania. Pierwszym z nich jest użycie domyślnego ctor (bez parametrów) T (bez parametrów)

drugi to akceptacja Func z logiką inicjalizacji klienta. należy użyć drugiego przeciążenie jak wspomniano tutaj

http://msdn.microsoft.com/en-us/library/dd642329.aspx

Powiązane problemy