LazyInitializer.EnsureInitialized Metod

Definition

Initierar en måltyp om den inte redan har initierats.

Överlagringar

Name Description
EnsureInitialized<T>(T)

Initierar en målreferenstyp med typens parameterlösa konstruktor om den inte redan har initierats.

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

Initierar en målreferenstyp med hjälp av en angiven funktion om den inte redan har initierats.

EnsureInitialized<T>(T, Boolean, Object)

Initierar en målreferens eller värdetyp med sin parameterlösa konstruktor om den inte redan har initierats.

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

Initierar en målreferenstyp med en angiven funktion om den inte redan har initierats.

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

Initierar en målreferens eller värdetyp med hjälp av en angiven funktion om den inte redan har initierats.

EnsureInitialized<T>(T)

Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs

Initierar en målreferenstyp med typens parameterlösa konstruktor om den inte redan har initierats.

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

Typparametrar

T

Typen av referens som ska initieras.

Parametrar

target
T

En referens för att initiera om den inte redan har initierats. Om den är nullanses den inte initierad. Annars anses den initierad.

Returer

T

Det initierade objektet.

Undantag

Behörigheter för att komma åt konstruktorn av typen T saknades.

Typen T har ingen parameterlös konstruktor.

Kommentarer

Den här metoden kan endast användas för referenstyper. Information om hur du initierar värdetyper finns i andra överlagringar av EnsureInitialized.

Den här metoden kan användas samtidigt av flera trådar för att initiera target.

Om flera trådar kommer åt den här metoden samtidigt kan flera instanser av T skapas, men endast en lagras i target och returneras. I en sådan händelse kommer den här metoden inte att ta bort de objekt som inte har lagrats. Om sådana objekt måste tas bort använder du en överlagring som tar ett valueFactory och tar bort objektet om det inte refererar till samma lagrade objekt.

Se även

Gäller för

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

Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs

Initierar en målreferenstyp med hjälp av en angiven funktion om den inte redan har initierats.

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

Typparametrar

T

Typen av referens som ska initieras.

Parametrar

target
T

Referensen för att initiera om den inte redan har initierats.

valueFactory
Func<T>

Funktionen som anropas för att initiera referensen.

Returer

T

Det initierade objektet.

Undantag

Typen T har ingen parameterlös konstruktor.

valueFactory returnerade null (Inget i Visual Basic).

Kommentarer

Den här metoden kan endast användas för referenstyper och valueFactory kanske inte returnerar en null-referens (Ingenting i Visual Basic). Se andra överlagringar av EnsureInitialized för att säkerställa initiering av värdetyper eller för att tillåta null-referenstyper.

Den här metoden kan användas samtidigt av flera trådar för att initiera target.

Om flera trådar får åtkomst till den här metoden samtidigt kan flera instanser av T skapas, men endast en lagras i target. I en sådan händelse kommer den här metoden inte att ta bort de objekt som inte har lagrats. Om sådana objekt måste tas bort är det upp till anroparen att avgöra om ett objekt inte har använts och sedan ta bort objektet på rätt sätt.

Se även

Gäller för

EnsureInitialized<T>(T, Boolean, Object)

Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs

Initierar en målreferens eller värdetyp med sin parameterlösa konstruktor om den inte redan har initierats.

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

Typparametrar

T

Typen av referens som ska initieras.

Parametrar

target
T

En referens eller ett värde av typen T som ska initieras om den inte redan har initierats.

initialized
Boolean

En referens till ett booleskt värde som avgör om målet redan har initierats.

syncLock
Object

En referens till ett objekt som används som ömsesidigt uteslutande lås för att targetinitiera . Om syncLock är nullinstansieras ett nytt objekt.

Returer

T

Det initierade objektet.

Undantag

Behörigheter för att komma åt konstruktorn av typen T saknades.

Typen T har ingen parameterlös konstruktor.

Kommentarer

Om initialized anges som sant sker ingen ytterligare initiering.

Se även

Gäller för

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

Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs

Initierar en målreferenstyp med en angiven funktion om den inte redan har initierats.

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

Typparametrar

T

Typen av referens som ska initieras.

Parametrar

target
T

En referens för att initiera om den inte redan har initierats. Om den är nullanses den inte initierad. Annars anses den initierad.

syncLock
Object

En referens till ett objekt som används som ömsesidigt uteslutande lås för att targetinitiera . Om syncLock är nullinstansieras ett nytt objekt.

valueFactory
Func<T>

Metoden som ska anropas för att initiera target.

Returer

T

Det initierade objektet.

Gäller för

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

Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs
Källa:
LazyInitializer.cs

Initierar en målreferens eller värdetyp med hjälp av en angiven funktion om den inte redan har initierats.

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

Typparametrar

T

Typen av referens som ska initieras.

Parametrar

target
T

En referens eller ett värde av typen T som ska initieras om den inte redan har initierats.

initialized
Boolean

En referens till ett booleskt värde som avgör om målet redan har initierats.

syncLock
Object

En referens till ett objekt som används som ömsesidigt uteslutande lås för att targetinitiera . Om syncLock är nullinstansieras ett nytt objekt.

valueFactory
Func<T>

Funktionen som anropas för att initiera referensen eller värdet.

Returer

T

Det initierade objektet.

Undantag

Behörigheter för att komma åt konstruktorn av typen T saknades.

Typen T har ingen parameterlös konstruktor.

Kommentarer

Om initialized anges som sant sker ingen ytterligare initiering.

Se även

Gäller för