Прочитать на английском

Поделиться через


LazyInitializer Класс

Определение

Обеспечивает процедуры инициализации адаптирующегося типа.

C#
public static class LazyInitializer
Наследование
LazyInitializer

Примеры

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

C#
ExpensiveData _data = null;  
bool _dataInitialized = false;  
object _dataLock = new object();  

//  ...  

ExpensiveData dataToUse = LazyInitializer.EnsureInitialized(ref _data, ref _dataInitialized, ref _dataLock);  

Комментарии

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

Методы

EnsureInitialized<T>(T)

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

EnsureInitialized<T>(T, Boolean, Object)

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

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

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

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

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

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

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

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

Продукт Версии
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Потокобезопасность

Методы LazyInitializer являются потокобезопасными и могут вызываться из нескольких потоков одновременно.

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