Compartilhar via


LazyInitializer.EnsureInitialized Método

Definição

Inicializa um tipo de destino se ele ainda não tiver sido inicializado.

Sobrecargas

EnsureInitialized<T>(T)

Inicializa um tipo de referência de destino com o construtor sem parâmetro de tipo se ele ainda não foi inicializado.

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

Inicializa um tipo de referência de destino usando uma função especificadas se ainda não tiver sido inicializada.

EnsureInitialized<T>(T, Boolean, Object)

Inicializa uma referência de destino ou um tipo de valor com seu construtor sem parâmetro se ele ainda não foi inicializado.

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

Inicializará um tipo de referência de destino com uma função especificada se ainda não tiver sido inicializado.

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

Inicializa um tipo de valor ou referência de destino usando uma função especificadas se ainda não tiver sido inicializada.

EnsureInitialized<T>(T)

Inicializa um tipo de referência de destino com o construtor sem parâmetro de tipo se ele ainda não foi inicializado.

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

Parâmetros de tipo

T

O tipo da referência a ser inicializado.

Parâmetros

target
T

Uma referência para inicializar se ela ainda não tiver sido inicializada. Se for null, ela será considerada não inicializada; do contrário, será considerada inicializada.

Retornos

T

O objeto inicializado.

Exceções

Permissões para acessar o construtor do tipo T estavam ausentes.

O tipo T não tem um construtor sem parâmetros.

Comentários

Esse método só pode ser usado em tipos de referência. Para garantir a inicialização de tipos de valor, consulte outras sobrecargas de EnsureInitialized.

Esse método pode ser usado simultaneamente por vários threads para inicializar target.

No caso de vários threads acessarem esse método simultaneamente, várias instâncias podem T ser criadas, mas apenas uma será armazenada e retornada target . Nessa ocorrência, esse método não descartará os objetos que não foram armazenados. Se esses objetos precisarem ser descartados, use uma sobrecarga que leve um valueFactory e descarte do objeto se ele não fizer referência ao mesmo objeto armazenado.

Confira também

Aplica-se a

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

Inicializa um tipo de referência de destino usando uma função especificadas se ainda não tiver sido inicializada.

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

Parâmetros de tipo

T

O tipo da referência a ser inicializado.

Parâmetros

target
T

Uma referência a ser inicializada se ainda não tiver sido.

valueFactory
Func<T>

A função que é chamada para inicializar a referência.

Retornos

T

O objeto inicializado.

Exceções

O tipo T não tem um construtor sem parâmetros.

valueFactory retornou null (Nothing no Visual Basic).

Comentários

Esse método só pode ser usado em tipos de referência e valueFactory não pode retornar uma referência nula (Nothing in Visual Basic). Para garantir a inicialização de tipos de valor ou permitir tipos de referência nulos, consulte outras sobrecargas de EnsureInitialized.

Esse método pode ser usado simultaneamente por vários threads para inicializar target.

No caso de vários threads acessarem esse método simultaneamente, várias instâncias podem T ser criadas, mas apenas uma será armazenada em target. Nessa ocorrência, esse método não descartará os objetos que não foram armazenados. Se esses objetos precisarem ser descartados, cabe ao chamador determinar se um objeto não foi usado e, em seguida, descartar o objeto adequadamente.

Confira também

Aplica-se a

EnsureInitialized<T>(T, Boolean, Object)

Inicializa uma referência de destino ou um tipo de valor com seu construtor sem parâmetro se ele ainda não foi inicializado.

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

Parâmetros de tipo

T

O tipo da referência a ser inicializado.

Parâmetros

target
T

Uma referência ou um valor do tipo T a ser inicializado se já não tiver sido inicializado.

initialized
Boolean

Uma referência a um valor booliano que determina se o destino já foi inicializado.

syncLock
Object

Uma referência a um objeto usado como o bloqueio mutuamente exclusivo para inicializar target. Se syncLock for null, será criada uma instância de um novo objeto.

Retornos

T

O objeto inicializado.

Exceções

Permissões para acessar o construtor do tipo T estavam ausentes.

O tipo T não tem um construtor sem parâmetros.

Comentários

Se initialized for especificado como true, nenhuma inicialização adicional ocorrerá.

Confira também

Aplica-se a

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

Inicializará um tipo de referência de destino com uma função especificada se ainda não tiver sido inicializado.

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

Parâmetros de tipo

T

O tipo da referência a ser inicializado.

Parâmetros

target
T

Uma referência para inicializar se ela ainda não tiver sido inicializada. Se for null, ela será considerada não inicializada; do contrário, será considerada inicializada.

syncLock
Object

Uma referência a um objeto usado como o bloqueio mutuamente exclusivo para inicializar target. Se syncLock for null, será criada uma instância de um novo objeto.

valueFactory
Func<T>

O método a ser invocado para inicializar target.

Retornos

T

O objeto inicializado.

Aplica-se a

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

Inicializa um tipo de valor ou referência de destino usando uma função especificadas se ainda não tiver sido inicializada.

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

Parâmetros de tipo

T

O tipo da referência a ser inicializado.

Parâmetros

target
T

Uma referência ou um valor do tipo T a ser inicializado se já não tiver sido inicializado.

initialized
Boolean

Uma referência a um valor booliano que determina se o destino já foi inicializado.

syncLock
Object

Uma referência a um objeto usado como o bloqueio mutuamente exclusivo para inicializar target. Se syncLock for null, será criada uma instância de um novo objeto.

valueFactory
Func<T>

A função que é chamada para inicializar a referência ou valor.

Retornos

T

O objeto inicializado.

Exceções

Permissões para acessar o construtor do tipo T estavam ausentes.

O tipo T não tem um construtor sem parâmetros.

Comentários

Se initialized for especificado como true, nenhuma inicialização adicional ocorrerá.

Confira também

Aplica-se a