Lazy<T>.IsValueCreated Lazy<T>.IsValueCreated Lazy<T>.IsValueCreated Lazy<T>.IsValueCreated Property

定義

この Lazy<T> インスタンスに対して値が作成されているかどうかを示す値を取得します。Gets a value that indicates whether a value has been created for this Lazy<T> instance.

public:
 property bool IsValueCreated { bool get(); };
public bool IsValueCreated { get; }
member this.IsValueCreated : bool
Public ReadOnly Property IsValueCreated As Boolean

プロパティ値

この Lazy<T> インスタンスに対して値が作成されている場合は true。それ以外の場合は falsetrue if a value has been created for this Lazy<T> instance; otherwise, false.

注釈

Lazy<T>インスタンスに対して遅延初期化が発生すると、値が作成されるか、例外がスローされます。When lazy initialization occurs for a Lazy<T> instance, it may result in either a value being created or an exception being thrown. 例外がスローされた場合、 Lazy<T>インスタンスの後続の動作は、例外キャッシュが有効になっているかどうかによって異なります。If an exception is thrown, subsequent behavior of the Lazy<T> instance depends on whether exception caching is in effect. 初期化関数を指定していないコンストラクターを使用してインスタンスが作成された場合、例外キャッシュは有効になりません。Lazy<T>If the Lazy<T> instance was created by using a constructor that does not specify an initialization function, then exception caching is not in effect. 後続ののLazy<T>初期化は成功する可能性があり、初期化が成功するとtrue、プロパティはIsValueCreatedを返します。A subsequent attempt to initialize the Lazy<T> might succeed, and after successful initialization the IsValueCreated property returns true. インスタンスが初期化関数 ( Lazy<T>コンストラクターのvalueFactoryパラメーターで指定) を使用して作成されている場合、例外キャッシュはスレッドセーフモードによって制御されます。 Lazy<T>If the Lazy<T> instance was created with an initialization function (specified by the valueFactory parameter of the Lazy<T> constructor), then exception caching is controlled by the thread safety mode.

  • モードがLazyThreadSafetyMode.ExecutionAndPublicationまたはLazyThreadSafetyMode.Noneの場合、インスタンスをLazy<T>初期化する機会はもうありません。If the mode is LazyThreadSafetyMode.ExecutionAndPublication or LazyThreadSafetyMode.None, there is no second chance to initialize the Lazy<T> instance. 例外が発生し、初期化関数でハンドルされない場合、その例外はキャッシュされ、その後Lazy<T>.Valueのプロパティのアクセス時に再スローされます。If an exception occurs and is unhandled in the initialization function, that exception is cached and rethrown on subsequent accesses of the Lazy<T>.Value property. 例外がスローされた場合は値が作成されないIsValueCreatedためfalse、このような場合はが返されます。No value is created if an exception is thrown, so in such cases IsValueCreated returns false.

  • モードがLazyThreadSafetyMode.PublicationOnlyの場合、初期化関数 (またはパラメーターなしのコンストラクター) の実行に成功した最初のスレッドが、 Lazy<T>インスタンスの値を作成します。If the mode is LazyThreadSafetyMode.PublicationOnly, the first thread that succeeds in running the initialization function (or the parameterless constructor) creates the value for the Lazy<T> instance. 初期化関数が1つのスレッドで例外をスローした場合でも、他のLazy<T>スレッドはインスタンスの初期化を試みることができます。If the initialization function throws an exception on one thread, other threads can still try to initialize the Lazy<T> instance. 値が作成されるまで、 IsValueCreatedプロパティはfalseを返します。Until the value is created, the IsValueCreated property returns false.

適用対象

こちらもご覧ください