Udostępnij za pośrednictwem


LazyInitializer.EnsureInitialized Metoda

Definicja

Inicjuje typ docelowy, jeśli jeszcze nie został zainicjowany.

Przeciążenia

EnsureInitialized<T>(T)

Inicjuje docelowy typ odwołania przy użyciu konstruktora bez parametrów typu, jeśli nie został jeszcze zainicjowany.

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

Inicjuje docelowy typ odwołania przy użyciu określonej funkcji, jeśli nie została jeszcze zainicjowana.

EnsureInitialized<T>(T, Boolean, Object)

Inicjuje docelowe odwołanie lub typ wartości za pomocą konstruktora bez parametrów, jeśli nie został jeszcze zainicjowany.

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

Inicjuje docelowy typ odwołania z określoną funkcją, jeśli nie został jeszcze zainicjowany.

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

Inicjuje docelowe odwołanie lub typ wartości przy użyciu określonej funkcji, jeśli nie została jeszcze zainicjowana.

EnsureInitialized<T>(T)

Inicjuje docelowy typ odwołania przy użyciu konstruktora bez parametrów typu, jeśli nie został jeszcze zainicjowany.

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 odwołania do zainicjowania.

Parametry

target
T

Odwołanie do inicjowania, jeśli nie zostało jeszcze zainicjowane. Jeśli jest nullto , jest uważany za nie zainicjowany; w przeciwnym razie jest uważany za zainicjowany.

Zwraca

T

Zainicjowany obiekt.

Wyjątki

Brak uprawnień dostępu do konstruktora typu T .

Typ T nie ma konstruktora bez parametrów.

Uwagi

Tej metody można używać tylko w typach referencyjnych. Aby zapewnić inicjowanie typów wartości, zobacz inne przeciążenia elementu EnsureInitialized.

Ta metoda może być używana współbieżnie przez wiele wątków w celu zainicjowania targetmetody .

W przypadku, gdy wiele wątków uzyskuje dostęp do tej metody współbieżnie, można utworzyć wiele wystąpień T programu , ale tylko jeden będzie przechowywany w target i zwracany. W takim wystąpieniu ta metoda nie będzie usuwać obiektów, które nie były przechowywane. Jeśli takie obiekty muszą zostać usunięte, należy użyć przeciążenia, które pobiera valueFactory i usuwa obiekt, jeśli nie odwołuje się do tego samego przechowywanego obiektu.

Zobacz też

Dotyczy

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

Inicjuje docelowy typ odwołania przy użyciu określonej funkcji, jeśli nie została jeszcze zainicjowana.

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 odwołania do zainicjowania.

Parametry

target
T

Odwołanie do inicjowania, jeśli jeszcze nie zostało zainicjowane.

valueFactory
Func<T>

Funkcja, która jest wywoływana w celu zainicjowania odwołania.

Zwraca

T

Zainicjowany obiekt.

Wyjątki

Typ T nie ma konstruktora bez parametrów.

valueFactoryzwrócił wartość null (nic w Visual Basic).

Uwagi

Tej metody można używać tylko w typach referencyjnych i valueFactory nie może zwracać odwołania o wartości null (Nic w Visual Basic). Aby zapewnić inicjowanie typów wartości lub zezwalanie na typy odwołań o wartości null, zobacz inne przeciążenia elementu EnsureInitialized.

Ta metoda może być używana współbieżnie przez wiele wątków w celu zainicjowania targetmetody .

W przypadku, gdy wiele wątków uzyskuje dostęp do tej metody współbieżnie, można utworzyć wiele wystąpień T klasy , ale tylko jeden będzie przechowywany w programie target. W takim wystąpieniu ta metoda nie będzie usuwać obiektów, które nie były przechowywane. Jeśli takie obiekty muszą zostać usunięte, należy do obiektu wywołującego, aby określić, czy obiekt nie został użyty, a następnie odpowiednio usunąć obiekt.

Zobacz też

Dotyczy

EnsureInitialized<T>(T, Boolean, Object)

Inicjuje docelowe odwołanie lub typ wartości za pomocą konstruktora bez parametrów, jeśli nie został jeszcze zainicjowany.

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 odwołania do zainicjowania.

Parametry

target
T

Odwołanie lub wartość typu T do zainicjowania, jeśli jeszcze nie został zainicjowany.

initialized
Boolean

Odwołanie do wartości logicznej określającej, czy element docelowy został już zainicjowany.

syncLock
Object

Odwołanie do obiektu używanego jako wzajemnie wykluczająca się blokada do inicjowania targetelementu . Jeśli syncLock parametr ma nullwartość , zostanie utworzone wystąpienie nowego obiektu.

Zwraca

T

Zainicjowany obiekt.

Wyjątki

Brak uprawnień dostępu do konstruktora typu T .

Typ T nie ma konstruktora bez parametrów.

Uwagi

Jeśli initialized określono wartość true, nie nastąpi dalsza inicjalizacja.

Zobacz też

Dotyczy

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

Inicjuje docelowy typ odwołania z określoną funkcją, jeśli nie został jeszcze zainicjowany.

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 odwołania do zainicjowania.

Parametry

target
T

Odwołanie do inicjowania, jeśli nie zostało jeszcze zainicjowane. Jeśli jest nullto , jest uważany za nie zainicjowany; w przeciwnym razie jest uważany za zainicjowany.

syncLock
Object

Odwołanie do obiektu używanego jako wzajemnie wykluczająca się blokada do inicjowania targetelementu . Jeśli syncLock parametr ma nullwartość , zostanie utworzone wystąpienie nowego obiektu.

valueFactory
Func<T>

Metoda wywoływana w celu zainicjowania targetmetody .

Zwraca

T

Zainicjowany obiekt.

Dotyczy

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

Inicjuje docelowe odwołanie lub typ wartości przy użyciu określonej funkcji, jeśli nie została jeszcze zainicjowana.

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 odwołania do zainicjowania.

Parametry

target
T

Odwołanie lub wartość typu T do zainicjowania, jeśli jeszcze nie został zainicjowany.

initialized
Boolean

Odwołanie do wartości logicznej określającej, czy element docelowy został już zainicjowany.

syncLock
Object

Odwołanie do obiektu używanego jako wzajemnie wykluczająca się blokada do inicjowania targetelementu . Jeśli syncLock parametr ma nullwartość , zostanie utworzone wystąpienie nowego obiektu.

valueFactory
Func<T>

Funkcja, która jest wywoływana w celu zainicjowania odwołania lub wartości.

Zwraca

T

Zainicjowany obiekt.

Wyjątki

Brak uprawnień dostępu do konstruktora typu T .

Typ T nie ma konstruktora bez parametrów.

Uwagi

Jeśli initialized określono wartość true, nie nastąpi dalsza inicjalizacja.

Zobacz też

Dotyczy