LazyInitializer.EnsureInitialized Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Inicializa un tipo de destino si aún no se ha inicializado.
Sobrecargas
| Nombre | Description |
|---|---|
| EnsureInitialized<T>(T) |
Inicializa un tipo de referencia de destino con el constructor sin parámetros del tipo si aún no se ha inicializado. |
| EnsureInitialized<T>(T, Func<T>) |
Inicializa un tipo de referencia de destino mediante una función especificada si aún no se ha inicializado. |
| EnsureInitialized<T>(T, Boolean, Object) |
Inicializa una referencia de destino o un tipo de valor 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 una referencia de destino o un tipo de valor mediante una función especificada si aún no se ha inicializado. |
EnsureInitialized<T>(T)
Inicializa un tipo de referencia de destino con el constructor sin parámetros del tipo si aún no se ha 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
Tipo de la referencia que se va a inicializar.
Parámetros
- target
- T
Referencia para inicializar si aún no se ha inicializado. Si es null, se considera que no se inicializa; de lo contrario, se considera inicializado.
Devoluciones
Objeto inicializado.
Excepciones
Faltan permisos para acceder al constructor de tipo T .
El tipo T no tiene un 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, consulte otras sobrecargas de EnsureInitialized.
Varios subprocesos pueden usar este método simultáneamente para inicializar target.
En caso de que varios subprocesos accedan simultáneamente a este método, 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 mediante una 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;
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 la referencia que se va a inicializar.
Parámetros
- target
- T
Referencia para inicializar si aún no se ha inicializado.
- valueFactory
- Func<T>
Función a la que se llama para inicializar la referencia.
Devoluciones
Objeto inicializado.
Excepciones
El tipo T no tiene un constructor sin parámetros.
valueFactory devolvió null (Nothing en Visual Basic).
Comentarios
Este método solo se puede usar en tipos de referencia y es posible que valueFactory no devuelva 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 simultáneamente a este método, 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 una referencia de destino o un tipo de valor 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);
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 la 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 el destino ya se ha inicializado.
- syncLock
- Object
Referencia a un objeto utilizado como bloqueo mutuamente excluyente para inicializar target. Si syncLock es null, se creará una instancia de un nuevo objeto.
Devoluciones
Objeto inicializado.
Excepciones
Faltan permisos para acceder al constructor de tipo T .
El tipo T no tiene un 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;
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 la referencia que se va a inicializar.
Parámetros
- target
- T
Referencia para inicializar si aún no se ha inicializado. Si es null, se considera que no se inicializa; de lo contrario, se considera inicializado.
- syncLock
- Object
Referencia a un objeto utilizado como bloqueo mutuamente excluyente para inicializar 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
Objeto inicializado.
Se aplica a
EnsureInitialized<T>(T, Boolean, Object, Func<T>)
Inicializa una referencia de destino o un tipo de valor mediante una 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);
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 la 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 el destino ya se ha inicializado.
- syncLock
- Object
Referencia a un objeto utilizado como bloqueo mutuamente excluyente para inicializar target. Si syncLock es null, se creará una instancia de un nuevo objeto.
- valueFactory
- Func<T>
Función a la que se llama para inicializar la referencia o el valor.
Devoluciones
Objeto inicializado.
Excepciones
Faltan permisos para acceder al constructor de tipo T .
El tipo T no tiene un constructor sin parámetros.
Comentarios
Si initialized se especifica como true, no se produce ninguna inicialización adicional.