Comparteix a través de


LazyInitializer.EnsureInitialized Método

Definición

Inicializa un tipo de destino si aún no se ha inicializado.

Sobrecargas

EnsureInitialized<T>(T)

Inicializa un tipo de referencia de destino con su constructor sin parámetros si aún no se ha inicializado el destino.

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

Inicializa un tipo de referencia de destino utilizando la función especificada si aún no se ha inicializado.

EnsureInitialized<T>(T, Boolean, Object)

Inicializa un tipo de valor o referencia de destino con su constructor sin parámetros si aún no se ha inicializado.

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

Inicializa un tipo de referencia de destino con una función especificada si aún no se ha inicializado.

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

Inicializa un tipo de referencia de destino o tipo de valor utilizando la función especificada si aún no se ha inicializado.

EnsureInitialized<T>(T)

Inicializa un tipo de referencia de destino con su constructor sin parámetros si aún no se ha inicializado el destino.

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

Tipo de referencia que se va a inicializar.

Parámetros

target
T

Referencia que se va a inicializar si aún no se ha inicializado. Si es null, se considera que no se ha inicializado; de lo contrario, se considera inicializado.

Devoluciones

T

Objeto inicializado.

Excepciones

Faltaban los permisos para tener acceso al constructor de tipo T.

El tipo T no tiene ningún constructor sin parámetros.

Comentarios

Este método solo se puede usar en tipos de referencia. Para garantizar la inicialización de tipos de valor, vea otras sobrecargas de EnsureInitialized.

Varios subprocesos pueden usar este método simultáneamente para inicializar target.

En caso de que varios subprocesos accedan a este método simultáneamente, se pueden crear varias instancias de T , pero solo se almacenará una en target y se devolverá. En tal caso, este método no eliminará los objetos que no se almacenaron. Si estos objetos deben eliminarse, use una sobrecarga que tome y valueFactory elimine el objeto si no hace referencia al mismo objeto almacenado.

Consulte también

Se aplica a

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

Inicializa un tipo de referencia de destino utilizando la función especificada si aún no se ha inicializado.

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

Tipo de referencia que se va a inicializar.

Parámetros

target
T

Referencia que se va a inicializar si aún no se ha inicializado.

valueFactory
Func<T>

Función que se llama para inicializar la referencia.

Devoluciones

T

Objeto inicializado.

Excepciones

El tipo T no tiene ningún constructor sin parámetros.

valueFactory devuelve un valor NULL (Nothing en Visual Basic).

Comentarios

Este método solo se puede usar en tipos de referencia y valueFactory no puede devolver una referencia nula (Nothing en Visual Basic). Para garantizar la inicialización de tipos de valor o para permitir tipos de referencia null, consulte otras sobrecargas de EnsureInitialized.

Varios subprocesos pueden usar este método simultáneamente para inicializar target.

En caso de que varios subprocesos accedan a este método simultáneamente, se pueden crear varias instancias de T , pero solo se almacenará una en target. En tal caso, este método no eliminará los objetos que no se almacenaron. Si estos objetos deben eliminarse, depende del autor de la llamada determinar si no se usó un objeto y, a continuación, eliminar el objeto de forma adecuada.

Consulte también

Se aplica a

EnsureInitialized<T>(T, Boolean, Object)

Inicializa un tipo de valor o referencia de destino con su constructor sin parámetros si aún no se ha 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

Tipo de referencia que se va a inicializar.

Parámetros

target
T

Referencia o valor de tipo T que se va a inicializar si aún no se ha inicializado.

initialized
Boolean

Referencia a un valor booleano que determina si ya se ha inicializado el destino.

syncLock
Object

Referencia a un objeto que se usa como bloqueo mutuamente excluyente para la inicialización de target. Si syncLock es null, se creará una instancia de un nuevo objeto.

Devoluciones

T

Objeto inicializado.

Excepciones

Faltaban los permisos para tener acceso al constructor de tipo T.

El tipo T no tiene ningún constructor sin parámetros.

Comentarios

Si initialized se especifica como true, no se produce ninguna inicialización adicional.

Consulte también

Se aplica a

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

Inicializa un tipo de referencia de destino con una función especificada si aún no se ha 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

Tipo de referencia que se va a inicializar.

Parámetros

target
T

Referencia que se va a inicializar si aún no se ha inicializado. Si es null, se considera que no se ha inicializado; de lo contrario, se considera inicializado.

syncLock
Object

Referencia a un objeto que se usa como bloqueo mutuamente excluyente para la inicialización de target. Si syncLock es null, se creará una instancia de un nuevo objeto.

valueFactory
Func<T>

Método que se va a invocar para inicializar target.

Devoluciones

T

Objeto inicializado.

Se aplica a

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

Inicializa un tipo de referencia de destino o tipo de valor utilizando la función especificada si aún no se ha inicializado.

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

Tipo de referencia que se va a inicializar.

Parámetros

target
T

Referencia o valor de tipo T que se va a inicializar si aún no se ha inicializado.

initialized
Boolean

Referencia a un valor booleano que determina si ya se ha inicializado el destino.

syncLock
Object

Referencia a un objeto que se usa como bloqueo mutuamente excluyente para la inicialización de target. Si syncLock es null, se creará una instancia de un nuevo objeto.

valueFactory
Func<T>

Función que se llama para inicializar la referencia o el valor.

Devoluciones

T

Objeto inicializado.

Excepciones

Faltaban los permisos para tener acceso al constructor de tipo T.

El tipo T no tiene ningún constructor sin parámetros.

Comentarios

Si initialized se especifica como true, no se produce ninguna inicialización adicional.

Consulte también

Se aplica a