1. Přehled
Vytvoření objektu vyžaduje hodně spotřeby a tento objekt nemusí být během běhu použit, takže aby se zabránilo jeho vytváření pokaždé, je potřeba líná inicializace (také nazývaná líná instance).
Zpožděná inicializace probíhá v . NET 4.0, který se primárně používá ke zlepšení výkonu, předcházení plýtvání výpočtem a snížení požadavků na paměť programu. Může být také nazýván načítáním na vyžádání.
2. Základní gramatika
3. Implementujte s příklady
Začněte vytvořením třídy Student s následujícím kódem:
Vytvořte konzolový program s následujícím kódem:
Po nastavení breakpointu pro ladění jsem zjistil, že po novém nastavení byla hodnota Student's IsValueCreated nepravdivá a hodnota hodnoty nulová
Pak, při volání vlastnosti Jméno, hodnota studentova IsValueCreated je pravdivá a hodnota hodnoty již není nulová
Výsledek běhu:
Je vidět, že Student je inicializován pouze tehdy, když je atribut Name vytištěn, tedy při prvním použití, aby se dosáhlo cíle snížení spotřeby.
Tento příklad je jednoduchý a <T>nejzákladnější způsob, jak použít Lazy. Můžeme také použít<T> Lazyho přetížení Lazy<T> (Funkc<T>), abychom předali delegáta s vrácenou hodnotou pro nastavení vlastnosti objektu lazy inicializace.
Výsledek běhu:
Poznámka:<T> Inicializace Lazy objektů je ve výchozím nastavení bezpečná pro vlákna a v prostředí s více vlákny inicializuje první vlákno, které přistupuje k<T> vlastnosti Hodnota objektu Lazy<T>, a následující přístupová vlákna použijí data inicializovaná poprvé.
4. Scénáře použití
Existuje objekt, který má velkou režii k vytvoření, a program ho nemusí použít. Například předpokládejme, že váš program při spuštění načte několik instancí objektů, ale jen několik z nich je potřeba spustit okamžitě. Výkon při startu programu můžete zlepšit tím, že inicializaci zbytečných objektů zpozdíte až do doby, kdy jsou potřebné objekty vytvořeny.
|