LazyInitializer Osztály

Definíció

Lusta inicializálási rutinokat biztosít.

public ref class LazyInitializer abstract sealed
public static class LazyInitializer
type LazyInitializer = class
Public Class LazyInitializer
Öröklődés
LazyInitializer

Példák

Az alábbi példa bemutatja, hogyan lehet az EnsureInitialized használatával lazán inicializálni egy értéket logikai érték használatával annak nyomon követésére, hogy az inicializálás már megtörtént-e, és egy objektumot, amelyet kölcsönös kizárási zárolásként kell használni.

Dim _data As ExpensiveData = Nothing  
Dim _dataInitialized As Boolean = False  
Dim _dataLock As Object = Nothing  
'    ...  
Dim name = LazyInitializer.EnsureInitialized(_data, _dataInitialized, _dataLock)  
ExpensiveData _data = null;  
bool _dataInitialized = false;  
object _dataLock = new object();  

//  ...  

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

Megjegyzések

Ezek a rutinok nem igényelnek dedikált, lusta inicializálási példányt, ehelyett hivatkozásokkal biztosítják, hogy a célok inicializálása a hozzáférésük során történjen.

Metódusok

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

Egy célhivatkozást vagy értéktípust inicializál egy megadott függvény használatával, ha még nem inicializálta.

EnsureInitialized<T>(T, Boolean, Object)

Inicializál egy célhivatkozást vagy értéktípust a paraméter nélküli konstruktorával, ha még nincs inicializálva.

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

Inicializál egy célhivatkozástípust egy megadott függvény használatával, ha még nem inicializálta.

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

Inicializál egy célhivatkozástípust egy megadott függvénnyel, ha még nincs inicializálva.

EnsureInitialized<T>(T)

Inicializál egy célhivatkozás-típust a típus paraméter nélküli konstruktorával, ha még nem inicializálták.

A következőre érvényes:

Szálbiztonság

A metódusok LazyInitializer szálbiztosak, és egyidejűleg több szálból is meghívhatók.

Lásd még