Lazy<T>.IsValueCreated Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá hodnotu, která označuje, zda byla vytvořena hodnota pro tuto Lazy<T> instanci.
public:
property bool IsValueCreated { bool get(); };
public bool IsValueCreated { get; }
member this.IsValueCreated : bool
Public ReadOnly Property IsValueCreated As Boolean
Hodnota vlastnosti
true
pokud byla pro tuto Lazy<T> instanci vytvořena hodnota; false
v opačném případě .
Poznámky
Při opožděné inicializaci instance Lazy<T> může dojít k vytvoření hodnoty nebo vyvolání výjimky. Pokud dojde k vyvolání výjimky, následné chování Lazy<T> instance závisí na tom, jestli je ukládání výjimek do mezipaměti účinné. Lazy<T> Pokud byla instance vytvořena pomocí konstruktoru, který nezadá inicializační funkci, pak se ukládání výjimek do mezipaměti neprojeví. Následný pokus o inicializaci Lazy<T> může být úspěšný a po úspěšné inicializaci IsValueCreated vrátí vlastnost true
. Lazy<T> Pokud byla instance vytvořena s inicializační funkcí (určenou parametrem valueFactory
Lazy<T> konstruktoru), je ukládání výjimek do mezipaměti řízeno režimem zabezpečení vlákna.
Pokud je LazyThreadSafetyMode.ExecutionAndPublication režim nebo LazyThreadSafetyMode.None, neexistuje žádná druhá šance na inicializaci Lazy<T> instance. Pokud dojde k výjimce a je neošetřená ve funkci inicializace, je tato výjimka uložena v mezipaměti a znovu se znovu vyvolá při následných přístupech vlastnosti Lazy<T>.Value . Není vytvořena žádná hodnota, pokud je vyvolán výjimka, takže v takových případech IsValueCreated vrátí
false
hodnotu .Pokud je LazyThreadSafetyMode.PublicationOnlyrežim , první vlákno, které úspěšně spustí inicializační funkci (nebo konstruktor bez parametrů) vytvoří hodnotu instance Lazy<T> . Pokud inicializační funkce vyvolá výjimku na jednom vlákně, ostatní vlákna se stále můžou pokusit inicializovat Lazy<T> instanci. Dokud se hodnota nevytvořila, IsValueCreated vrátí
false
vlastnost .