LazyInitializer.EnsureInitialized Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Inicializa um tipo de destino se ele ainda não tiver sido inicializado.
Sobrecargas
| Nome | Description |
|---|---|
| EnsureInitialized<T>(T) |
Inicializa um tipo de referência de destino com o construtor sem parâmetros do tipo se ele ainda não tiver sido inicializado. |
| EnsureInitialized<T>(T, Func<T>) |
Inicializa um tipo de referência de destino usando uma função especificada se ela ainda não foi inicializada. |
| EnsureInitialized<T>(T, Boolean, Object) |
Inicializa uma referência de destino ou um tipo de valor com seu construtor sem parâmetros se ele ainda não tiver sido inicializado. |
| EnsureInitialized<T>(T, Object, Func<T>) |
Inicializa um tipo de referência de destino com uma função especificada se ela ainda não foi inicializada. |
| EnsureInitialized<T>(T, Boolean, Object, Func<T>) |
Inicializa uma referência de destino ou um tipo de valor usando uma função especificada se ela ainda não tiver sido inicializada. |
EnsureInitialized<T>(T)
Inicializa um tipo de referência de destino com o construtor sem parâmetros do tipo se ele ainda não tiver sido inicializado.
public:
generic <typename T>
where T : class static T EnsureInitialized(T % target);
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 inicializada.
Parâmetros
- target
- T
Uma referência para inicializar se ela ainda não tiver sido inicializada. Se for null, ele não será considerado inicializado; caso contrário, ele será considerado inicializado.
Retornos
O objeto inicializado.
Exceções
As 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.
Caso vários threads acessem esse método simultaneamente, várias instâncias podem T ser criadas, mas apenas uma será armazenada e retornada target . Em tal 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 especificada se ela ainda não foi 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;
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 inicializada.
Parâmetros
- target
- T
A referência a ser inicializada se ainda não tiver sido inicializada.
- valueFactory
- Func<T>
A função que é chamada para inicializar a referência.
Retornos
O objeto inicializado.
Exceções
O tipo T não tem um construtor sem parâmetros.
valueFactory retornado nulo (Nothing in Visual Basic).
Comentários
Esse método só pode ser usado em tipos de referência e valueFactory pode não 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.
Caso vários threads acessem esse método simultaneamente, várias instâncias podem T ser criadas, mas apenas uma será armazenada em target. Em tal 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âmetros se ele ainda não tiver sido 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);
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 inicializada.
Parâmetros
- target
- T
Uma referência ou valor de tipo T a ser inicializado se ainda 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 inicialização target. Se syncLock for null, um novo objeto será instanciado.
Retornos
O objeto inicializado.
Exceções
As 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>)
Inicializa um tipo de referência de destino com uma função especificada se ela ainda não foi inicializada.
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;
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 inicializada.
Parâmetros
- target
- T
Uma referência para inicializar se ela ainda não tiver sido inicializada. Se for null, ele não será considerado inicializado; caso contrário, ele será considerado inicializado.
- syncLock
- Object
Uma referência a um objeto usado como o bloqueio mutuamente exclusivo para inicialização target. Se syncLock for null, um novo objeto será instanciado.
- valueFactory
- Func<T>
O método a ser invocado para inicializar target.
Retornos
O objeto inicializado.
Aplica-se a
EnsureInitialized<T>(T, Boolean, Object, Func<T>)
Inicializa uma referência de destino ou um tipo de valor usando uma função especificada se ela 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);
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 inicializada.
Parâmetros
- target
- T
Uma referência ou valor de tipo T a ser inicializado se ainda 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 inicialização target. Se syncLock for null, um novo objeto será instanciado.
- valueFactory
- Func<T>
A função que é chamada para inicializar a referência ou o valor.
Retornos
O objeto inicializado.
Exceções
As 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á.