LazyInitializer.EnsureInitialized Metódus

Definíció

Inicializál egy céltípust, ha még nincs inicializálva.

Túlterhelések

Name Description
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.

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, 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, Object, Func<T>)

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

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)

Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs

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.

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ípusparaméterek

T

Az inicializálandó hivatkozás típusa.

Paraméterek

target
T

Inicializálásra vonatkozó hivatkozás, ha még nem inicializálódott. Ha igen null, akkor a rendszer nem inicializáltnak tekinti, ellenkező esetben inicializáltnak tekinti.

Válaszok

T

Az inicializált objektum.

Kivételek

A konstruktorhoz T való hozzáféréshez szükséges engedélyek hiányoznak.

A típus T nem rendelkezik paraméter nélküli konstruktorsal.

Megjegyzések

Ez a módszer csak referenciatípusok esetén használható. Az értéktípusok inicializálásának biztosításához tekintse meg EnsureInitializeda .

Ezt a metódust egyszerre több szál is használhatja az inicializáláshoz target.

Abban az esetben, ha egyszerre több szál is hozzáfér ehhez a metódushoz, több példány T is létrehozható, de csak egy lesz tárolva target és visszaadva. Ilyen esetben ez a módszer nem fogja megsemmisíteni a nem tárolt objektumokat. Ha ezeket az objektumokat el kell dobni, használjon túlterhelést, amely az objektumot elveszi valueFactory , és megsemmisíti, ha nem ugyanarra a tárolt objektumra hivatkozik.

Lásd még

A következőre érvényes:

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

Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs

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

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ípusparaméterek

T

Az inicializálandó hivatkozás típusa.

Paraméterek

target
T

Az inicializálásra vonatkozó hivatkozás, ha még nem inicializálódott.

valueFactory
Func<T>

A hivatkozás inicializálásához hívott függvény.

Válaszok

T

Az inicializált objektum.

Kivételek

A típus T nem rendelkezik paraméter nélküli konstruktorsal.

valueFactory null értéket adott vissza (a Visual Basic semmi).

Megjegyzések

Ez a módszer csak hivatkozástípusokhoz használható, és valueFactory nem adhat vissza null hivatkozást (Visual Basic semmi). Az értéktípusok inicializálásának biztosításához vagy a null referenciatípusok engedélyezéséhez tekintse meg az EnsureInitialized egyéb túlterheléseit.

Ezt a metódust egyszerre több szál is használhatja az inicializáláshoz target.

Ha egyszerre több szál is hozzáfér ehhez a metódushoz, több példány T is létrehozható, de csak egy lesz tárolva target. Ilyen esetben ez a módszer nem fogja megsemmisíteni a nem tárolt objektumokat. Ha ilyen objektumokat kell megsemmisíteni, a hívó feladata annak megállapítása, hogy nem használták-e az objektumot, majd a megfelelő módon kell-e megsemmisíteni az objektumot.

Lásd még

A következőre érvényes:

EnsureInitialized<T>(T, Boolean, Object)

Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs

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

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ípusparaméterek

T

Az inicializálandó hivatkozás típusa.

Paraméterek

target
T

Egy inicializálandó hivatkozás vagy érték T , ha még nem inicializálták.

initialized
Boolean

Logikai értékre mutató hivatkozás, amely meghatározza, hogy a cél már inicializálva van-e.

syncLock
Object

Az inicializálás targetkölcsönösen kizárólagos zárolásaként használt objektumra mutató hivatkozás. Ha syncLock igen null, egy új objektum lesz példányosítva.

Válaszok

T

Az inicializált objektum.

Kivételek

A konstruktorhoz T való hozzáféréshez szükséges engedélyek hiányoznak.

A típus T nem rendelkezik paraméter nélküli konstruktorsal.

Megjegyzések

Ha initialized igazként van megadva, akkor nem történik további inicializálás.

Lásd még

A következőre érvényes:

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

Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs

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

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ípusparaméterek

T

Az inicializálandó hivatkozás típusa.

Paraméterek

target
T

Inicializálásra vonatkozó hivatkozás, ha még nem inicializálódott. Ha igen null, akkor a rendszer nem inicializáltnak tekinti, ellenkező esetben inicializáltnak tekinti.

syncLock
Object

Az inicializálás targetkölcsönösen kizárólagos zárolásaként használt objektumra mutató hivatkozás. Ha syncLock igen null, egy új objektum lesz példányosítva.

valueFactory
Func<T>

Az inicializáláshoz targetmeghívandó metódus.

Válaszok

T

Az inicializált objektum.

A következőre érvényes:

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

Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs
Forrás:
LazyInitializer.cs

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

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ípusparaméterek

T

Az inicializálandó hivatkozás típusa.

Paraméterek

target
T

Egy inicializálandó hivatkozás vagy érték T , ha még nem inicializálták.

initialized
Boolean

Logikai értékre mutató hivatkozás, amely meghatározza, hogy a cél már inicializálva van-e.

syncLock
Object

Az inicializálás targetkölcsönösen kizárólagos zárolásaként használt objektumra mutató hivatkozás. Ha syncLock igen null, egy új objektum lesz példányosítva.

valueFactory
Func<T>

A hivatkozás vagy érték inicializálására hívott függvény.

Válaszok

T

Az inicializált objektum.

Kivételek

A konstruktorhoz T való hozzáféréshez szükséges engedélyek hiányoznak.

A típus T nem rendelkezik paraméter nélküli konstruktorsal.

Megjegyzések

Ha initialized igazként van megadva, akkor nem történik további inicializálás.

Lásd még

A következőre érvényes: