Condividi tramite


LazyInitializer.EnsureInitialized Metodo

Definizione

Inizializza un tipo di destinazione se non è già stato inizializzato.

Overload

EnsureInitialized<T>(T)

Inizializza un tipo di riferimento di destinazione con il relativo costruttore senza parametri se non è già stato inizializzato.

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

Inizializza un tipo di riferimento di destinazione utilizzando una funzione specificata se non è già stato inizializzato.

EnsureInitialized<T>(T, Boolean, Object)

Inizializza un tipo riferimento o valore di destinazione con il relativo costruttore senza parametri se non è già stato inizializzato.

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

Inizializza un tipo di riferimento di destinazione con una funzione specificata se non è già stato inizializzato.

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

Inizializza un tipo di riferimento o di valore di destinazione utilizzando una funzione specificata se non è già stato inizializzato.

EnsureInitialized<T>(T)

Origine:
LazyInitializer.cs
Origine:
LazyInitializer.cs
Origine:
LazyInitializer.cs

Inizializza un tipo di riferimento di destinazione con il relativo costruttore senza parametri se non è già stato inizializzato.

public:
generic <typename T>
 where T : class static T EnsureInitialized(T % target);
public static T EnsureInitialized<T> (ref T target) where T : class;
public static T EnsureInitialized<T> (ref T? target) where T : class;
static member EnsureInitialized : 'T -> 'T (requires 'T : null)
Public Shared Function EnsureInitialized(Of T As Class) (ByRef target As T) As T

Parametri di tipo

T

Tipo del riferimento da inizializzare.

Parametri

target
T

Riferimento da inizializzare se non è già stato inizializzato. Se è null, viene considerato non inizializzato; in caso contrario, viene considerato inizializzato.

Restituisce

T

Oggetto inizializzato.

Eccezioni

Le autorizzazioni per accedere al costruttore di tipo T erano mancanti.

Il tipo T non dispone di un costruttore senza parametri.

Commenti

Questo metodo può essere utilizzato solo sui tipi di riferimento. Per garantire l'inizializzazione dei tipi valore, vedere altri overload di EnsureInitialized.

Questo metodo può essere usato contemporaneamente da più thread per inizializzare target.

Nel caso in cui più thread accedano contemporaneamente a questo metodo, è possibile creare più istanze di T , ma solo una verrà archiviata in target e restituita. In tale occorrenza, questo metodo non eliminerà gli oggetti non archiviati. Se tali oggetti devono essere eliminati, utilizzare un overload che accetta valueFactory e elimina l'oggetto se non fa riferimento allo stesso oggetto archiviato.

Vedi anche

Si applica a

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

Origine:
LazyInitializer.cs
Origine:
LazyInitializer.cs
Origine:
LazyInitializer.cs

Inizializza un tipo di riferimento di destinazione utilizzando una funzione specificata se non è già stato inizializzato.

public:
generic <typename T>
 where T : class static T EnsureInitialized(T % target, Func<T> ^ valueFactory);
public static T EnsureInitialized<T> (ref T target, Func<T> valueFactory) where T : class;
public static T EnsureInitialized<T> (ref T? target, Func<T> valueFactory) where T : class;
static member EnsureInitialized : 'T * Func<'T (requires 'T : null)> -> 'T (requires 'T : null)
Public Shared Function EnsureInitialized(Of T As Class) (ByRef target As T, valueFactory As Func(Of T)) As T

Parametri di tipo

T

Tipo del riferimento da inizializzare.

Parametri

target
T

Riferimento da inizializzare se non è già stato inizializzato.

valueFactory
Func<T>

Funzione chiamata per inizializzare il riferimento.

Restituisce

T

Oggetto inizializzato.

Eccezioni

Il tipo T non dispone di un costruttore senza parametri.

valueFactory restituisce null (Nothing in Visual Basic).

Commenti

Questo metodo può essere utilizzato solo sui tipi riferimento e valueFactory potrebbe non restituire un riferimento Null (Nothing in Visual Basic). Per garantire l'inizializzazione dei tipi valore o per consentire i tipi riferimento Null, vedere altri overload di EnsureInitialized.

Questo metodo può essere usato contemporaneamente da più thread per inizializzare target.

Nel caso in cui più thread accedano contemporaneamente a questo metodo, è possibile creare più istanze di T , ma solo una verrà archiviata in target. In tale occorrenza, questo metodo non eliminerà gli oggetti non archiviati. Se tali oggetti devono essere eliminati, spetta al chiamante determinare se un oggetto non è stato utilizzato e quindi eliminare l'oggetto in modo appropriato.

Vedi anche

Si applica a

EnsureInitialized<T>(T, Boolean, Object)

Origine:
LazyInitializer.cs
Origine:
LazyInitializer.cs
Origine:
LazyInitializer.cs

Inizializza un tipo riferimento o valore di destinazione con il relativo costruttore senza parametri se non è già stato inizializzato.

public:
generic <typename T>
 static T EnsureInitialized(T % target, bool % initialized, System::Object ^ % syncLock);
public static T EnsureInitialized<T> (ref T target, ref bool initialized, ref object syncLock);
public static T EnsureInitialized<T> (ref T target, ref bool initialized, ref object? syncLock);
static member EnsureInitialized : 'T * bool * obj -> 'T
Public Shared Function EnsureInitialized(Of T) (ByRef target As T, ByRef initialized As Boolean, ByRef syncLock As Object) As T

Parametri di tipo

T

Tipo del riferimento da inizializzare.

Parametri

target
T

Riferimento o valore di tipo T da inizializzare se non è già stato inizializzato.

initialized
Boolean

Riferimento a un valore booleano che determina se la destinazione è già stata inizializzata.

syncLock
Object

Riferimento a un oggetto utilizzato come blocco a esclusione reciproca per l'inizializzazione di target. Se syncLock è null, verrà creata un'istanza di un nuovo oggetto.

Restituisce

T

Oggetto inizializzato.

Eccezioni

Le autorizzazioni per accedere al costruttore di tipo T erano mancanti.

Il tipo T non dispone di un costruttore senza parametri.

Commenti

Se initialized viene specificato come true, non viene eseguita un'ulteriore inizializzazione.

Vedi anche

Si applica a

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

Origine:
LazyInitializer.cs
Origine:
LazyInitializer.cs
Origine:
LazyInitializer.cs

Inizializza un tipo di riferimento di destinazione con una funzione specificata se non è già stato inizializzato.

public:
generic <typename T>
 where T : class static T EnsureInitialized(T % target, System::Object ^ % syncLock, Func<T> ^ valueFactory);
public static T EnsureInitialized<T> (ref T? target, ref object? syncLock, Func<T> valueFactory) where T : class;
public static T EnsureInitialized<T> (ref T target, ref object syncLock, Func<T> valueFactory) where T : class;
static member EnsureInitialized : 'T * obj * Func<'T (requires 'T : null)> -> 'T (requires 'T : null)
Public Shared Function EnsureInitialized(Of T As Class) (ByRef target As T, ByRef syncLock As Object, valueFactory As Func(Of T)) As T

Parametri di tipo

T

Tipo del riferimento da inizializzare.

Parametri

target
T

Riferimento da inizializzare se non è già stato inizializzato. Se è null, viene considerato non inizializzato; in caso contrario, viene considerato inizializzato.

syncLock
Object

Riferimento a un oggetto utilizzato come blocco a esclusione reciproca per l'inizializzazione di target. Se syncLock è null, verrà creata un'istanza di un nuovo oggetto.

valueFactory
Func<T>

Metodo da richiamare per inizializzare target.

Restituisce

T

Oggetto inizializzato.

Si applica a

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

Origine:
LazyInitializer.cs
Origine:
LazyInitializer.cs
Origine:
LazyInitializer.cs

Inizializza un tipo di riferimento o di valore di destinazione utilizzando una funzione specificata se non è già stato inizializzato.

public:
generic <typename T>
 static T EnsureInitialized(T % target, bool % initialized, System::Object ^ % syncLock, Func<T> ^ valueFactory);
public static T EnsureInitialized<T> (ref T target, ref bool initialized, ref object syncLock, Func<T> valueFactory);
public static T EnsureInitialized<T> (ref T target, ref bool initialized, ref object? syncLock, Func<T> valueFactory);
static member EnsureInitialized : 'T * bool * obj * Func<'T> -> 'T
Public Shared Function EnsureInitialized(Of T) (ByRef target As T, ByRef initialized As Boolean, ByRef syncLock As Object, valueFactory As Func(Of T)) As T

Parametri di tipo

T

Tipo del riferimento da inizializzare.

Parametri

target
T

Riferimento o valore di tipo T da inizializzare se non è già stato inizializzato.

initialized
Boolean

Riferimento a un valore booleano che determina se la destinazione è già stata inizializzata.

syncLock
Object

Riferimento a un oggetto utilizzato come blocco a esclusione reciproca per l'inizializzazione di target. Se syncLock è null, verrà creata un'istanza di un nuovo oggetto.

valueFactory
Func<T>

Funzione chiamata per inizializzare il riferimento o il valore.

Restituisce

T

Oggetto inizializzato.

Eccezioni

Le autorizzazioni per accedere al costruttore di tipo T erano mancanti.

Il tipo T non dispone di un costruttore senza parametri.

Commenti

Se initialized viene specificato come true, non viene eseguita un'ulteriore inizializzazione.

Vedi anche

Si applica a