英語で読む

次の方法で共有


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)

ソース:
LazyInitializer.cs
ソース:
LazyInitializer.cs
ソース:
LazyInitializer.cs

まだ初期化されていない場合、型のパラメーターなしのコンストラクターを使用してターゲット参照型を初期化します。

C#
public static T EnsureInitialized<T> (ref T target) where T : class;
C#
public static T EnsureInitialized<T> (ref T? target) where T : class;

型パラメーター

T

初期化される参照の型。

パラメーター

target
T

まだ初期化されていない場合、初期化する参照。 これが null の場合は、初期化されていないと見なされます。それ以外の場合は、初期化されていると見なされます。

戻り値

T

初期化されたオブジェクト。

例外

T のコンストラクターにアクセスするためのアクセス許可がありませんでした。

T には、パラメーターなしのコンストラクターがありません。

注釈

このメソッドは、参照型でのみ使用できます。 値型の初期化を保証するには、 の他の EnsureInitializedオーバーロードを参照してください。

このメソッドは、 を初期化 targetするために複数のスレッドで同時に使用できます。

複数のスレッドがこのメソッドに同時にアクセスする場合は、 の複数の T インスタンスを作成できますが、 に target 格納されて返されるのは 1 つだけです。 このような場合、このメソッドは、格納されていないオブジェクトを破棄しません。 このようなオブジェクトを破棄する必要がある場合は、 を受け取る valueFactory オーバーロードを使用し、同じ格納されているオブジェクトを参照していない場合は オブジェクトを破棄します。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

ソース:
LazyInitializer.cs
ソース:
LazyInitializer.cs
ソース:
LazyInitializer.cs

まだ初期化されていない場合、指定された関数を使用してターゲット参照型を初期化します。

C#
public static T EnsureInitialized<T> (ref T target, Func<T> valueFactory) where T : class;
C#
public static T EnsureInitialized<T> (ref T? target, Func<T> valueFactory) where T : class;

型パラメーター

T

初期化される参照の型。

パラメーター

target
T

まだ初期化されていない場合、初期化する参照。

valueFactory
Func<T>

参照を初期化するために呼び出される関数。

戻り値

T

初期化されたオブジェクト。

例外

T には、パラメーターなしのコンストラクターがありません。

valueFactory では null (Visual Basic の場合は Nothing) を返しました。

注釈

このメソッドは、参照型でのみ使用でき、 valueFactory null 参照を返さない場合があります (Visual Basic では Nothing)。 値型の初期化を確実に行うか、null 参照型を許可するには、EnsureInitialized の他のオーバーロードを参照してください。

このメソッドは、 を初期化 targetするために複数のスレッドで同時に使用できます。

複数のスレッドがこのメソッドに同時にアクセスする場合は、 の複数の T インスタンスを作成できますが、 に target格納されるのは 1 つだけです。 このような場合、このメソッドは、格納されていないオブジェクトを破棄しません。 このようなオブジェクトを破棄する必要がある場合は、オブジェクトが使用されていないかどうかを判断し、そのオブジェクトを適切に破棄するのは呼び出し元の責任です。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

EnsureInitialized<T>(T, Boolean, Object)

ソース:
LazyInitializer.cs
ソース:
LazyInitializer.cs
ソース:
LazyInitializer.cs

まだ初期化されていない場合、そのパラメーターなしのコンストラクターを使用してターゲット参照または値の型を初期化します。

C#
public static T EnsureInitialized<T> (ref T target, ref bool initialized, ref object syncLock);
C#
public static T EnsureInitialized<T> (ref T target, ref bool initialized, ref object? syncLock);

型パラメーター

T

初期化される参照の型。

パラメーター

target
T

初期化されていない場合に初期化する型 T の参照または値。

initialized
Boolean

ターゲットが既に初期化されているかどうかを判断するブール値への参照。

syncLock
Object

target を初期化するために相互排他的ロックとして使用されるオブジェクトへの参照。 syncLocknull の場合、新しいオブジェクトがインスタンス化されます。

戻り値

T

初期化されたオブジェクト。

例外

T のコンストラクターにアクセスするためのアクセス許可がありませんでした。

T には、パラメーターなしのコンストラクターがありません。

注釈

が true として指定されている場合 initialized 、それ以上の初期化は行われません。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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

ソース:
LazyInitializer.cs
ソース:
LazyInitializer.cs
ソース:
LazyInitializer.cs

まだ初期化されていない場合、指定された関数を使用してターゲット参照型を初期化します。

C#
public static T EnsureInitialized<T> (ref T? target, ref object? syncLock, Func<T> valueFactory) where T : class;
C#
public static T EnsureInitialized<T> (ref T target, ref object syncLock, Func<T> valueFactory) where T : class;

型パラメーター

T

初期化される参照の型。

パラメーター

target
T

まだ初期化されていない場合、初期化する参照。 これが null の場合は、初期化されていないと見なされます。それ以外の場合は、初期化されていると見なされます。

syncLock
Object

target を初期化するために相互排他的ロックとして使用されるオブジェクトへの参照。 syncLocknull の場合、新しいオブジェクトがインスタンス化されます。

valueFactory
Func<T>

target を初期化するために呼び出すメソッド。

戻り値

T

初期化されたオブジェクト。

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Standard 2.1

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

ソース:
LazyInitializer.cs
ソース:
LazyInitializer.cs
ソース:
LazyInitializer.cs

まだ初期化されていない場合、指定された関数を使用することでターゲット参照または値の型を初期化します。

C#
public static T EnsureInitialized<T> (ref T target, ref bool initialized, ref object syncLock, Func<T> valueFactory);
C#
public static T EnsureInitialized<T> (ref T target, ref bool initialized, ref object? syncLock, Func<T> valueFactory);

型パラメーター

T

初期化される参照の型。

パラメーター

target
T

初期化されていない場合に初期化する型 T の参照または値。

initialized
Boolean

ターゲットが既に初期化されているかどうかを判断するブール値への参照。

syncLock
Object

target を初期化するために相互排他的ロックとして使用されるオブジェクトへの参照。 syncLocknull の場合、新しいオブジェクトがインスタンス化されます。

valueFactory
Func<T>

参照または値を初期化するために呼び出される関数。

戻り値

T

初期化されたオブジェクト。

例外

T のコンストラクターにアクセスするためのアクセス許可がありませんでした。

T には、パラメーターなしのコンストラクターがありません。

注釈

が true として指定されている場合 initialized 、それ以上の初期化は行われません。

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0