LazyInitializer.EnsureInitialized メソッド
この記事の内容
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
まだ初期化されていない場合は、ターゲットの型を初期化します。
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>) |
まだ初期化されていない場合、指定された関数を使用することでターゲット参照または値の型を初期化します。 |
まだ初期化されていない場合、型のパラメーターなしのコンストラクターを使用してターゲット参照型を初期化します。
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
には、パラメーターなしのコンストラクターがありません。
注釈
このメソッドは、参照型でのみ使用できます。 値型の初期化を保証するには、 の他の 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 |
まだ初期化されていない場合、指定された関数を使用してターゲット参照型を初期化します。
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
には、パラメーターなしのコンストラクターがありません。
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 |
まだ初期化されていない場合、そのパラメーターなしのコンストラクターを使用してターゲット参照または値の型を初期化します。
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
を初期化するために相互排他的ロックとして使用されるオブジェクトへの参照。
syncLock
が null
の場合、新しいオブジェクトがインスタンス化されます。
戻り値
初期化されたオブジェクト。
例外
型 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 |
まだ初期化されていない場合、指定された関数を使用してターゲット参照型を初期化します。
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
を初期化するために相互排他的ロックとして使用されるオブジェクトへの参照。
syncLock
が null
の場合、新しいオブジェクトがインスタンス化されます。
- valueFactory
- Func<T>
target
を初期化するために呼び出すメソッド。
戻り値
初期化されたオブジェクト。
適用対象
.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 |
まだ初期化されていない場合、指定された関数を使用することでターゲット参照または値の型を初期化します。
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
を初期化するために相互排他的ロックとして使用されるオブジェクトへの参照。
syncLock
が null
の場合、新しいオブジェクトがインスタンス化されます。
- valueFactory
- Func<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 |
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。