Sdílet prostřednictvím


LazyInitializer.EnsureInitialized Metoda

Definice

Inicializuje cílový typ, pokud ještě nebyl inicializován.

Přetížení

EnsureInitialized<T>(T)

Inicializuje cílový typ odkazu pomocí konstruktoru bez parametrů typu, pokud ještě nebyl inicializován.

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

Inicializuje cílový typ odkazu pomocí zadané funkce, pokud ještě nebyl inicializován.

EnsureInitialized<T>(T, Boolean, Object)

Inicializuje cílový odkaz nebo typ hodnoty pomocí jeho konstruktoru bez parametrů, pokud ještě nebyl inicializován.

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

Inicializuje cílový typ odkazu se zadanou funkcí, pokud ještě nebyl inicializován.

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

Inicializuje cílový odkaz nebo typ hodnoty pomocí zadané funkce, pokud ještě nebyl inicializován.

EnsureInitialized<T>(T)

Inicializuje cílový typ odkazu pomocí konstruktoru bez parametrů typu, pokud ještě nebyl inicializován.

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

Parametry typu

T

Typ odkazu, který se má inicializovat.

Parametry

target
T

Odkaz na inicializaci, pokud ještě nebyl inicializován. Pokud je null, považuje se za inicializovaný, jinak se považuje za inicializovaný.

Návraty

T

Inicializovaný objekt.

Výjimky

Chybí oprávnění pro přístup k konstruktoru typu T .

Typ T nemá konstruktor bez parametrů.

Poznámky

Tuto metodu lze použít pouze u referenčních typů. Chcete-li zajistit inicializaci hodnotových typů, podívejte se na další přetížení EnsureInitialized.

Tuto metodu lze použít souběžně více vláken k inicializaci target.

V případě, že k této metodě přistupuje současně více vláken, může být vytvořeno více instancí T , ale bude uložen target a vrácen pouze jeden. V takovém výskytu tato metoda neodloží objekty, které nebyly uloženy. Pokud tyto objekty musí být odstraněny, použijte přetížení, které vezme valueFactory a odstraní objekt, pokud neodkazuje na stejný uložený objekt.

Viz také

Platí pro

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

Inicializuje cílový typ odkazu pomocí zadané funkce, pokud ještě nebyl inicializován.

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

Parametry typu

T

Typ odkazu, který se má inicializovat.

Parametry

target
T

Odkaz na inicializaci, pokud ještě nebyl inicializován.

valueFactory
Func<T>

Funkce, která se volá k inicializaci odkazu.

Návraty

T

Inicializovaný objekt.

Výjimky

Typ T nemá konstruktor bez parametrů.

valueFactoryvrácená hodnota null (nic v Visual Basic).

Poznámky

Tuto metodu lze použít pouze u odkazových typů a valueFactory nemusí vrátit odkaz null (Nic v Visual Basic). Chcete-li zajistit inicializaci typů hodnot nebo povolit odkazové typy null, přečtěte si další přetížení funkce EnsureInitialized.

Tuto metodu lze použít souběžně více vláken k inicializaci target.

V případě, že k této metodě přistupuje současně více vláken, může být vytvořeno více instancí T , ale pouze jeden bude uložen do target. V takovém výskytu tato metoda neodloží objekty, které nebyly uloženy. Pokud tyto objekty musí být odstraněny, je to až volající, aby zjistili, jestli objekt nebyl použit a pak ho odpovídajícím způsobem odstraňte.

Viz také

Platí pro

EnsureInitialized<T>(T, Boolean, Object)

Inicializuje cílový odkaz nebo typ hodnoty pomocí jeho konstruktoru bez parametrů, pokud ještě nebyl inicializován.

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

Parametry typu

T

Typ odkazu, který se má inicializovat.

Parametry

target
T

Odkaz nebo hodnota typu T , která se má inicializovat, pokud ještě nebyla inicializována.

initialized
Boolean

Odkaz na logickou hodnotu, která určuje, zda již byl cíl inicializován.

syncLock
Object

Odkaz na objekt použitý jako vzájemně exkluzivní zámek pro inicializaci target. Pokud syncLock ano null, vytvoří se instance nového objektu.

Návraty

T

Inicializovaný objekt.

Výjimky

Chybí oprávnění pro přístup k konstruktoru typu T .

Typ T nemá konstruktor bez parametrů.

Poznámky

Pokud initialized je zadána jako true, nedojde k žádné další inicializaci.

Viz také

Platí pro

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

Inicializuje cílový typ odkazu se zadanou funkcí, pokud ještě nebyl inicializován.

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

Parametry typu

T

Typ odkazu, který se má inicializovat.

Parametry

target
T

Odkaz na inicializaci, pokud ještě nebyl inicializován. Pokud je null, považuje se za inicializovaný, jinak se považuje za inicializovaný.

syncLock
Object

Odkaz na objekt použitý jako vzájemně exkluzivní zámek pro inicializaci target. Pokud syncLock ano null, vytvoří se instance nového objektu.

valueFactory
Func<T>

Metoda vyvolání inicializace target.

Návraty

T

Inicializovaný objekt.

Platí pro

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

Inicializuje cílový odkaz nebo typ hodnoty pomocí zadané funkce, pokud ještě nebyl inicializován.

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

Parametry typu

T

Typ odkazu, který se má inicializovat.

Parametry

target
T

Odkaz nebo hodnota typu T , která se má inicializovat, pokud ještě nebyla inicializována.

initialized
Boolean

Odkaz na logickou hodnotu, která určuje, zda již byl cíl inicializován.

syncLock
Object

Odkaz na objekt použitý jako vzájemně exkluzivní zámek pro inicializaci target. Pokud syncLock ano null, vytvoří se instance nového objektu.

valueFactory
Func<T>

Funkce, která se volá k inicializaci odkazu nebo hodnoty.

Návraty

T

Inicializovaný objekt.

Výjimky

Chybí oprávnění pro přístup k konstruktoru typu T .

Typ T nemá konstruktor bez parametrů.

Poznámky

Pokud initialized je zadána jako true, nedojde k žádné další inicializaci.

Viz také

Platí pro