Lazy<T>.IsValueCreated Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene un valore che indica se è stato creato un valore per l'istanza di Lazy<T>.
public:
property bool IsValueCreated { bool get(); };
public bool IsValueCreated { get; }
member this.IsValueCreated : bool
Public ReadOnly Property IsValueCreated As Boolean
Valore della proprietà
true
se è stato creato un valore per l'istanza di Lazy<T>. In caso contrario, false
.
Commenti
Quando si verifica l'inizializzazione differita per un'istanza Lazy<T> di , può comportare la creazione di un valore o la generazione di un'eccezione. Se viene generata un'eccezione, il comportamento successivo dell'istanza Lazy<T> dipende dal fatto che la memorizzazione nella cache delle eccezioni sia attiva. Se l'istanza Lazy<T> è stata creata usando un costruttore che non specifica una funzione di inizializzazione, la memorizzazione nella cache delle eccezioni non è effettiva. Un tentativo successivo di inizializzare l'oggetto Lazy<T> potrebbe avere esito positivo e, dopo l'inizializzazione riuscita, la IsValueCreated proprietà restituisce true
. Se l'istanza Lazy<T> è stata creata con una funzione di inizializzazione (specificata dal valueFactory
parametro del costruttore), la Lazy<T> memorizzazione nella cache delle eccezioni viene controllata dalla modalità thread safety.
Se la modalità è LazyThreadSafetyMode.ExecutionAndPublication o LazyThreadSafetyMode.None, non è possibile inizializzare l'istanza Lazy<T> . Se si verifica un'eccezione e non viene gestita nella funzione di inizializzazione, tale eccezione viene memorizzata nella cache e rigenerata per gli accessi successivi della Lazy<T>.Value proprietà. Se viene generata un'eccezione, non viene creato alcun valore, pertanto in questi casi IsValueCreated restituisce
false
.Se la modalità è LazyThreadSafetyMode.PublicationOnly, il primo thread che ha esito positivo nell'esecuzione della funzione di inizializzazione (o del costruttore senza parametri) crea il valore per l'istanza Lazy<T> di . Se la funzione di inizializzazione genera un'eccezione in un thread, gli altri thread possono comunque provare a inizializzare l'istanza Lazy<T> . Finché il valore non viene creato, la IsValueCreated proprietà restituisce
false
.