Lire en anglais

Partager via


LazyInitializer Classe

Définition

Fournit des routines d'initialisation tardives.

C#
public static class LazyInitializer
Héritage
LazyInitializer

Exemples

L’exemple suivant montre comment utiliser EnsureInitialized pour initialiser automatiquement une valeur à l’aide d’une valeur booléenne pour suivre si l’initialisation a déjà eu lieu et qu’un objet à utiliser comme verrou d’exclusion mutuelle.

C#
ExpensiveData _data = null;  
bool _dataInitialized = false;  
object _dataLock = new object();  

//  ...  

ExpensiveData dataToUse = LazyInitializer.EnsureInitialized(ref _data, ref _dataInitialized, ref _dataLock);  

Remarques

Ces routines évitent d’avoir besoin d’allouer une instance dédiée d’initialisation différée, à la place en utilisant des références pour garantir que les cibles ont été initialisées à mesure qu’elles sont accessibles.

Méthodes

EnsureInitialized<T>(T)

Initialise un type référence cible avec le constructeur sans paramètre du type, s’il n’a pas déjà été initialisé.

EnsureInitialized<T>(T, Boolean, Object)

Initialise un type référence cible ou un type valeur avec son constructeur sans paramètre, s’il n’a pas déjà été initialisé.

EnsureInitialized<T>(T, Boolean, Object, Func<T>)

Initialise un type référence cible ou un type valeur à l'aide d'une fonction spécifiée s'il n'a pas déjà été initialisé.

EnsureInitialized<T>(T, Func<T>)

Initialise un type référence cible à l'aide d'une fonction spécifiée s'il n'a pas déjà été initialisé.

EnsureInitialized<T>(T, Object, Func<T>)

Initialise un type référence cible ou avec une fonction spécifiée s’il n’a pas déjà été initialisé.

S’applique à

Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Cohérence de thread

Les méthodes de LazyInitializer thread-safe peuvent être appelées simultanément à partir de plusieurs threads.

Voir aussi