Freigeben über


LazyInitializer.EnsureInitialized Methode

Definition

Initialisiert einen Zieltyp, wenn der noch nicht initialisiert wurde.

Überlädt

EnsureInitialized<T>(T)

Initialisiert einen Zielverweistyp mit seinem parameterlosen Konstruktor, wenn er noch nicht initialisiert wurde.

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

Initialisiert einen Zielverweistyp mit einer angegebenen Funktion, wenn er noch nicht initialisiert wurde.

EnsureInitialized<T>(T, Boolean, Object)

Initialisiert einen Zielverweis- oder Werttyp mit seinem parameterlosen Konstruktor, wenn er noch nicht initialisiert wurde.

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

Initialisiert einen Zielverweistyp mit einer angegebenen Funktion, wenn er noch nicht initialisiert wurde.

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

Initialisiert einen Zielverweis- oder Werttyp mit einer angegebenen Funktion, wenn er noch nicht initialisiert wurde.

EnsureInitialized<T>(T)

Quelle:
LazyInitializer.cs
Quelle:
LazyInitializer.cs
Quelle:
LazyInitializer.cs

Initialisiert einen Zielverweistyp mit seinem parameterlosen Konstruktor, wenn er noch nicht initialisiert wurde.

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

Typparameter

T

Der Typ des zu initialisierenden Verweises.

Parameter

target
T

Ein Verweis, der initialisiert werden soll, wenn er noch nicht initialisiert wurde. Bei null wird er als nicht initialisiert betrachtet, andernfalls gilt er als initialisiert.

Gibt zurück

T

Das initialisierte Objekt.

Ausnahmen

Berechtigungen, auf den Konstruktor des Typs T zuzugreifen, haben gefehlt.

Der Typ T hat keinen parameterlosen Konstruktor.

Hinweise

Diese Methode kann nur für Verweistypen verwendet werden. Informationen zur Initialisierung von Werttypen finden Sie unter Andere Überladungen von EnsureInitialized.

Diese Methode kann gleichzeitig von mehreren Threads verwendet werden, um zu initialisieren target.

Für den Fall, dass mehrere Threads gleichzeitig auf diese Methode zugreifen, können mehrere Instanzen von T erstellt werden, aber nur eine wird in target gespeichert und zurückgegeben. In einem solchen Vorkommen entsorgt diese Methode nicht die Objekte, die nicht gespeichert wurden. Wenn solche Objekte verworfen werden müssen, verwenden Sie eine Überladung, die ein valueFactory übernimmt und das Objekt entfernt, wenn es nicht auf dasselbe gespeicherte Objekt verweist.

Weitere Informationen

Gilt für:

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

Quelle:
LazyInitializer.cs
Quelle:
LazyInitializer.cs
Quelle:
LazyInitializer.cs

Initialisiert einen Zielverweistyp mit einer angegebenen Funktion, wenn er noch nicht initialisiert wurde.

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

Typparameter

T

Der Typ des zu initialisierenden Verweises.

Parameter

target
T

Der Verweis, der initialisiert werden soll, wenn er noch nicht initialisiert wurde.

valueFactory
Func<T>

Die Funktion, die aufgerufen wird, um den Verweis zu initialisieren.

Gibt zurück

T

Das initialisierte Objekt.

Ausnahmen

Der Typ T hat keinen parameterlosen Konstruktor.

valueFactory gibt null (Nothing in Visual Basic) zurück.

Hinweise

Diese Methode kann nur für Verweistypen verwendet werden und valueFactory gibt möglicherweise keinen NULL-Verweis zurück (Nothing in Visual Basic). Informationen zum Sicherstellen der Initialisierung von Werttypen oder zum Zulassen von NULL-Verweistypen finden Sie unter Andere Überladungen von EnsureInitialized.

Diese Methode kann gleichzeitig von mehreren Threads verwendet werden, um zu initialisieren target.

Für den Fall, dass mehrere Threads gleichzeitig auf diese Methode zugreifen, können mehrere Instanzen von T erstellt werden, aber nur eine wird in targetgespeichert. In einem solchen Vorkommen entsorgt diese Methode nicht die Objekte, die nicht gespeichert wurden. Wenn solche Objekte verworfen werden müssen, ist es Sache des Aufrufers, zu bestimmen, ob ein Objekt nicht verwendet wurde, und das Objekt dann entsprechend zu entsorgen.

Weitere Informationen

Gilt für:

EnsureInitialized<T>(T, Boolean, Object)

Quelle:
LazyInitializer.cs
Quelle:
LazyInitializer.cs
Quelle:
LazyInitializer.cs

Initialisiert einen Zielverweis- oder Werttyp mit seinem parameterlosen Konstruktor, wenn er noch nicht initialisiert wurde.

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

Typparameter

T

Der Typ des zu initialisierenden Verweises.

Parameter

target
T

Ein Verweis oder Wert vom Typ T , der initialisiert werden soll, wenn er noch nicht initialisiert wurde.

initialized
Boolean

Ein Verweis auf einen booleschen Wert, der bestimmt, ob das Ziel bereits initialisiert wurde.

syncLock
Object

Ein Verweis auf ein Objekt, das für die Initialisierung von target als sich gegenseitig ausschließende Sperre verwendet wird. Wenn syncLocknull ist, wird ein neues Objekt instanziiert.

Gibt zurück

T

Das initialisierte Objekt.

Ausnahmen

Berechtigungen, auf den Konstruktor des Typs T zuzugreifen, haben gefehlt.

Der Typ T hat keinen parameterlosen Konstruktor.

Hinweise

Wenn initialized als true angegeben wird, erfolgt keine weitere Initialisierung.

Weitere Informationen

Gilt für:

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

Quelle:
LazyInitializer.cs
Quelle:
LazyInitializer.cs
Quelle:
LazyInitializer.cs

Initialisiert einen Zielverweistyp mit einer angegebenen Funktion, wenn er noch nicht initialisiert wurde.

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

Typparameter

T

Der Typ des zu initialisierenden Verweises.

Parameter

target
T

Ein Verweis, der initialisiert werden soll, wenn er noch nicht initialisiert wurde. Bei null wird er als nicht initialisiert betrachtet, andernfalls gilt er als initialisiert.

syncLock
Object

Ein Verweis auf ein Objekt, das für die Initialisierung von target als sich gegenseitig ausschließende Sperre verwendet wird. Wenn syncLocknull ist, wird ein neues Objekt instanziiert.

valueFactory
Func<T>

Die Methode, die zum Initialisieren von target aufgerufen wird.

Gibt zurück

T

Das initialisierte Objekt.

Gilt für:

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

Quelle:
LazyInitializer.cs
Quelle:
LazyInitializer.cs
Quelle:
LazyInitializer.cs

Initialisiert einen Zielverweis- oder Werttyp mit einer angegebenen Funktion, wenn er noch nicht initialisiert wurde.

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

Typparameter

T

Der Typ des zu initialisierenden Verweises.

Parameter

target
T

Ein Verweis oder Wert vom Typ T , der initialisiert werden soll, wenn er noch nicht initialisiert wurde.

initialized
Boolean

Ein Verweis auf einen booleschen Wert, der bestimmt, ob das Ziel bereits initialisiert wurde.

syncLock
Object

Ein Verweis auf ein Objekt, das für die Initialisierung von target als sich gegenseitig ausschließende Sperre verwendet wird. Wenn syncLocknull ist, wird ein neues Objekt instanziiert.

valueFactory
Func<T>

Die Funktion, die aufgerufen wird, um den Verweis oder den Wert zu initialisieren.

Gibt zurück

T

Das initialisierte Objekt.

Ausnahmen

Berechtigungen, auf den Konstruktor des Typs T zuzugreifen, haben gefehlt.

Der Typ T hat keinen parameterlosen Konstruktor.

Hinweise

Wenn initialized als true angegeben wird, erfolgt keine weitere Initialisierung.

Weitere Informationen

Gilt für: