다음을 통해 공유


LazyInitializer.EnsureInitialized 메서드

정의

아직 초기화되지 않은 대상 유형을 초기화합니다.

오버로드

EnsureInitialized<T>(T)

아직 초기화되지 않은 경우 형식의 매개 변수가 없는 생성자를 사용하여 대상 참조 형식을 초기화합니다.

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

아직 초기화되지 않은 경우 지정된 함수를 사용하여 대상 참조 형식을 초기화합니다.

EnsureInitialized<T>(T, Boolean, Object)

아직 초기화되지 않은 경우 해당 매개 변수가 없는 생성자를 사용하여 대상 참조 또는 값 형식을 초기화합니다.

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

아직 초기화되지 않은 경우 지정된 함수로 대상 참조 형식을 초기화합니다.

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

아직 초기화되지 않은 경우 지정된 함수를 사용하여 대상 참조 또는 값 형식을 초기화합니다.

EnsureInitialized<T>(T)

아직 초기화되지 않은 경우 형식의 매개 변수가 없는 생성자를 사용하여 대상 참조 형식을 초기화합니다.

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

초기화할 참조의 형식입니다.

매개 변수

target
T

아직 초기화되지 않은 경우 초기화할 참조입니다. null이라면 초기화되지 않은 것으로 간주하며, 그렇지 않다면 초기화된 것으로 간주됩니다.

반환

T

초기화된 개체입니다.

예외

형식 T의 생성자에 액세스할 수 있는 권한이 없습니다.

T 형식에는 매개 변수가 없는 생성자가 없습니다.

설명

이 메서드는 참조 형식에서만 사용할 수 있습니다. 값 형식의 초기화를 확인하려면 다른 오버로드를 EnsureInitialized참조하세요.

이 메서드는 여러 스레드에서 동시에 사용하여 초기화 target할 수 있습니다.

여러 스레드가 이 메서드에 동시에 액세스하는 경우 여러 인스턴스를 T 만들 수 있지만 하나만 저장 target 되고 반환됩니다. 이 경우 이 메서드는 저장되지 않은 개체를 삭제하지 않습니다. 이러한 개체를 삭제해야 하는 경우 동일한 저장된 개체를 참조하지 않는 경우 개체를 valueFactory 사용하고 삭제하는 오버로드를 사용합니다.

추가 정보

적용 대상

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

아직 초기화되지 않은 경우 지정된 함수를 사용하여 대상 참조 형식을 초기화합니다.

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

초기화할 참조의 형식입니다.

매개 변수

target
T

아직 초기화되지 않은 경우 초기화할 참조입니다.

valueFactory
Func<T>

참조를 초기화하기 위해 호출되는 함수입니다.

반환

T

초기화된 개체입니다.

예외

T 형식에는 매개 변수가 없는 생성자가 없습니다.

valueFactory가 null을 반환합니다(Visual Basic의 경우 Nothing).

설명

이 메서드는 참조 형식에서만 사용할 수 있으며 valueFactory null 참조(Visual Basic 없음)를 반환하지 않을 수 있습니다. 값 형식의 초기화를 보장하거나 null 참조 형식을 허용하려면 EnsureInitialized의 다른 오버로드를 참조하세요.

이 메서드는 여러 스레드에서 동시에 사용하여 초기화 target할 수 있습니다.

여러 스레드가 이 메서드에 동시에 액세스하는 경우 여러 인스턴스를 T 만들 수 있지만 하나만 저장 target됩니다. 이 경우 이 메서드는 저장되지 않은 개체를 삭제하지 않습니다. 이러한 개체를 삭제해야 하는 경우 호출자는 개체가 사용되지 않는지 확인한 다음 개체를 적절하게 삭제해야 합니다.

추가 정보

적용 대상

EnsureInitialized<T>(T, Boolean, Object)

아직 초기화되지 않은 경우 해당 매개 변수가 없는 생성자를 사용하여 대상 참조 또는 값 형식을 초기화합니다.

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

초기화할 참조의 형식입니다.

매개 변수

target
T

아직 초기화되지 않은 경우 초기화할 T 형식의 참조 또는 값입니다.

initialized
Boolean

대상이 이미 초기화되었는지 여부를 결정하는 부울 값에 대한 참조입니다.

syncLock
Object

target을 초기화할 때 상호 배타적인 잠금으로 사용할 개체에 대한 참조입니다. syncLocknull이면 새 개체를 인스턴스화할 수 있습니다.

반환

T

초기화된 개체입니다.

예외

형식 T의 생성자에 액세스할 수 있는 권한이 없습니다.

T 형식에는 매개 변수가 없는 생성자가 없습니다.

설명

true로 지정하면 initialized 추가 초기화가 발생하지 않습니다.

추가 정보

적용 대상

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

아직 초기화되지 않은 경우 지정된 함수로 대상 참조 형식을 초기화합니다.

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

초기화할 참조의 형식입니다.

매개 변수

target
T

아직 초기화되지 않은 경우 초기화할 참조입니다. null이라면 초기화되지 않은 것으로 간주하며, 그렇지 않다면 초기화된 것으로 간주됩니다.

syncLock
Object

target을 초기화할 때 상호 배타적인 잠금으로 사용할 개체에 대한 참조입니다. syncLocknull이면 새 개체를 인스턴스화할 수 있습니다.

valueFactory
Func<T>

target을 초기화하기 위해 호출하는 메서드입니다.

반환

T

초기화된 개체입니다.

적용 대상

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

아직 초기화되지 않은 경우 지정된 함수를 사용하여 대상 참조 또는 값 형식을 초기화합니다.

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

초기화할 참조의 형식입니다.

매개 변수

target
T

아직 초기화되지 않은 경우 초기화할 T 형식의 참조 또는 값입니다.

initialized
Boolean

대상이 이미 초기화되었는지 여부를 결정하는 부울 값에 대한 참조입니다.

syncLock
Object

target을 초기화할 때 상호 배타적인 잠금으로 사용할 개체에 대한 참조입니다. syncLocknull이면 새 개체를 인스턴스화할 수 있습니다.

valueFactory
Func<T>

참조 또는 값을 초기화하기 위해 호출되는 함수입니다.

반환

T

초기화된 개체입니다.

예외

형식 T의 생성자에 액세스할 수 있는 권한이 없습니다.

T 형식에는 매개 변수가 없는 생성자가 없습니다.

설명

true로 지정하면 initialized 추가 초기화가 발생하지 않습니다.

추가 정보

적용 대상