LazyInitializer.EnsureInitialized Methode

Definition

Initialisiert einen Zieltyp, wenn er noch nicht initialisiert wurde.

Überlädt

Name Beschreibung
EnsureInitialized<T>(T)

Initialisiert einen Zielverweistyp mit dem parameterlosen Konstruktor des Typs, wenn er noch nicht initialisiert wurde.

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

Initialisiert einen Zielverweistyp mithilfe 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 mithilfe einer angegebenen Funktion, wenn er noch nicht initialisiert wurde.

EnsureInitialized<T>(T)

Initialisiert einen Zielverweistyp mit dem parameterlosen Konstruktor des Typs, 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;
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 zur Initialisierung, wenn er noch nicht initialisiert wurde. Wenn dies der Wert ist null, wird sie als nicht initialisiert betrachtet. Andernfalls wird sie als initialisiert betrachtet.

Gibt zurück

T

Das initialisierte Objekt.

Ausnahmen

Berechtigungen für den Zugriff auf den Konstruktor des Typs T fehlen.

Der Typ T verfügt nicht über einen parameterlosen Konstruktor.

Hinweise

Diese Methode kann nur für Referenztypen verwendet werden. Informationen zum Sicherstellen der Initialisierung von Werttypen finden Sie unter anderen Überladungen von EnsureInitialized.

Diese Methode kann gleichzeitig von mehreren Threads zum Initialisieren targetverwendet werden.

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

Weitere Informationen

Gilt für:

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

Initialisiert einen Zielverweistyp mithilfe 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;
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 verfügt nicht über einen parameterlosen Konstruktor.

valueFactory null (Nothing in Visual Basic) zurückgegeben.

Hinweise

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

Diese Methode kann gleichzeitig von mehreren Threads zum Initialisieren targetverwendet werden.

Für den Fall, dass mehrere Threads gleichzeitig auf diese Methode zugreifen, können mehrere Instanzen erstellt T werden, in denen jedoch nur eine gespeichert targetwird. In einem solchen Vorkommen verworfen diese Methode nicht die Objekte, die nicht gespeichert wurden. Wenn solche Objekte verworfen werden müssen, liegt es an dem Aufrufer, zu bestimmen, ob ein Objekt nicht verwendet wurde und das Objekt entsprechend verworfen werden soll.

Weitere Informationen

Gilt für:

EnsureInitialized<T>(T, Boolean, Object)

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);
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 Typwert, der T 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 als sich gegenseitig ausschließende Sperre für die Initialisierung targetverwendet wird. Wenn syncLock ja null, wird ein neues Objekt instanziiert.

Gibt zurück

T

Das initialisierte Objekt.

Ausnahmen

Berechtigungen für den Zugriff auf den Konstruktor des Typs T fehlen.

Der Typ T verfügt nicht über einen parameterlosen Konstruktor.

Hinweise

Wenn initialized "true" angegeben wird, tritt keine weitere Initialisierung auf.

Weitere Informationen

Gilt für:

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

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;
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 zur Initialisierung, wenn er noch nicht initialisiert wurde. Wenn dies der Wert ist null, wird sie als nicht initialisiert betrachtet. Andernfalls wird sie als initialisiert betrachtet.

syncLock
Object

Ein Verweis auf ein Objekt, das als sich gegenseitig ausschließende Sperre für die Initialisierung targetverwendet wird. Wenn syncLock ja null, wird ein neues Objekt instanziiert.

valueFactory
Func<T>

Die Methode, die zum Initialisieren targetaufgerufen werden soll.

Gibt zurück

T

Das initialisierte Objekt.

Gilt für:

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

Initialisiert einen Zielverweis oder Werttyp mithilfe 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);
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 Typwert, der T 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 als sich gegenseitig ausschließende Sperre für die Initialisierung targetverwendet wird. Wenn syncLock ja null, wird ein neues Objekt instanziiert.

valueFactory
Func<T>

Die Funktion, die zum Initialisieren des Verweises oder Werts aufgerufen wird.

Gibt zurück

T

Das initialisierte Objekt.

Ausnahmen

Berechtigungen für den Zugriff auf den Konstruktor des Typs T fehlen.

Der Typ T verfügt nicht über einen parameterlosen Konstruktor.

Hinweise

Wenn initialized "true" angegeben wird, tritt keine weitere Initialisierung auf.

Weitere Informationen

Gilt für: