LazyInitializer.EnsureInitialized Метод

Определение

Инициализирует целевой тип, если он еще не инициализирован.

Перегрузки

EnsureInitialized<T>(T)

Инициализирует целевой ссылочный тип его конструктором типа без параметров, если он еще не инициализирован.

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

Инициализирует целевой ссылочный тип с использованием указанной функцией, если он еще не инициализирован.

EnsureInitialized<T>(T, Boolean, Object)

Инициализирует целевой ссылочный тип или тип значения его конструктором без параметров, если он еще не инициализирован.

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

Инициализирует целевой ссылочный тип указанной функцией, если он еще не инициализирован.

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

Инициализирует целевой ссылочный тип или тип значения с использованием указанной функцией, если он еще не инициализирован.

EnsureInitialized<T>(T)

Инициализирует целевой ссылочный тип его конструктором типа без параметров, если он еще не инициализирован.

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

Параметры типа

T

Тип инициализируемой ссылки.

Параметры

target
T

Ссылка, которую необходимо инициализировать, если она еще не инициализирована. Если это параметр null, тип считается неинициализированным; в противном случае тип считается инициализированным.

Возвращаемое значение

T

Инициализированный объект.

Исключения

Разрешения на доступ к конструктору типа T отсутствовали.

У типа T нет конструктора без параметров.

Комментарии

Этот метод может использоваться только для ссылочных типов. Чтобы обеспечить инициализацию типов значений, см. другие перегрузки EnsureInitialized.

Этот метод может использоваться одновременно несколькими потоками для инициализации target.

В случае одновременного доступа к этому методу нескольких потоков может быть создано несколько экземпляров T , но только один из них будет сохранен target и возвращен. В таком случае этот метод не удаляет объекты, которые не были сохранены. Если такие объекты должны быть удалены, используйте перегрузку, которая принимает valueFactory и удаляет объект, если он не ссылается на тот же сохраненный объект.

См. также раздел

Применяется к

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

Инициализирует целевой ссылочный тип с использованием указанной функцией, если он еще не инициализирован.

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

Параметры типа

T

Тип инициализируемой ссылки.

Параметры

target
T

Ссылка, которую необходимо инициализировать, если она еще не инициализирована.

valueFactory
Func<T>

Функция, которая вызывается для инициализации ссылки.

Возвращаемое значение

T

Инициализированный объект.

Исключения

У типа T нет конструктора без параметров.

valueFactory вернул значение NULL (Nothing в Visual Basic).

Комментарии

Этот метод может использоваться только для ссылочных типов и valueFactory не может возвращать пустую ссылку (Nothing в Visual Basic). Чтобы обеспечить инициализацию типов значений или разрешить ссылочные типы NULL, см. другие перегрузки EnsureInitialized.

Этот метод может использоваться одновременно несколькими потоками для инициализации target.

В случае одновременного доступа к этому методу нескольких потоков может быть создано несколько экземпляров T , но в них будет храниться targetтолько один поток. В таком случае этот метод не удаляет объекты, которые не были сохранены. Если такие объекты должны быть удалены, вызывающий объект должен определить, не использовался ли объект, а затем соответствующим образом удалить объект.

См. также раздел

Применяется к

EnsureInitialized<T>(T, Boolean, Object)

Инициализирует целевой ссылочный тип или тип значения его конструктором без параметров, если он еще не инициализирован.

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

Параметры типа

T

Тип инициализируемой ссылки.

Параметры

target
T

Ссылка или значение типа T, которое необходимо инициализировать, если оно еще не инициализировано.

initialized
Boolean

Ссылка на логическое значение, определяющее, инициализирована ли цель.

syncLock
Object

Ссылка на объект, используемый как взаимоисключающая блокировка для инициализации параметра target. Если syncLock равно null, то нового объект будет создан экземпляр.

Возвращаемое значение

T

Инициализированный объект.

Исключения

Разрешения на доступ к конструктору типа T отсутствовали.

У типа T нет конструктора без параметров.

Комментарии

Если initialized задано значение true, то дальнейшая инициализация не возникает.

См. также раздел

Применяется к

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

Инициализирует целевой ссылочный тип указанной функцией, если он еще не инициализирован.

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

Параметры типа

T

Тип инициализируемой ссылки.

Параметры

target
T

Ссылка, которую необходимо инициализировать, если она еще не инициализирована. Если это параметр null, тип считается неинициализированным; в противном случае тип считается инициализированным.

syncLock
Object

Ссылка на объект, используемый как взаимоисключающая блокировка для инициализации параметра target. Если syncLock равно null, то нового объект будет создан экземпляр.

valueFactory
Func<T>

Метод, который необходимо вызвать для инициализации target.

Возвращаемое значение

T

Инициализированный объект.

Применяется к

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

Инициализирует целевой ссылочный тип или тип значения с использованием указанной функцией, если он еще не инициализирован.

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

Параметры типа

T

Тип инициализируемой ссылки.

Параметры

target
T

Ссылка или значение типа T, которое необходимо инициализировать, если оно еще не инициализировано.

initialized
Boolean

Ссылка на логическое значение, определяющее, инициализирована ли цель.

syncLock
Object

Ссылка на объект, используемый как взаимоисключающая блокировка для инициализации параметра target. Если syncLock равно null, то нового объект будет создан экземпляр.

valueFactory
Func<T>

Функция, которая вызывается для инициализации ссылки или значения.

Возвращаемое значение

T

Инициализированный объект.

Исключения

Разрешения на доступ к конструктору типа T отсутствовали.

У типа T нет конструктора без параметров.

Комментарии

Если initialized задано значение true, то дальнейшая инициализация не возникает.

См. также раздел

Применяется к