Lazy<T>.IsValueCreated Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob ein Wert für diese Lazy<T>-Instanz erstellt wurde.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

Eigenschaftswert

true, wenn ein Wert für diese Lazy<T>-Instanz erstellt wurde, andernfalls false.true if a value has been created for this Lazy<T> instance; otherwise, false.

Hinweise

Wenn eine verzögerte Initialisierung für eine Lazy<T> Instanz erfolgt, kann dies dazu führen, dass entweder ein Wert erstellt oder eine Ausnahme ausgelöst wird.When lazy initialization occurs for a Lazy<T> instance, it may result in either a value being created or an exception being thrown. Wenn eine Ausnahme ausgelöst wird, hängt das nachfolgende Verhalten der Lazy<T> Instanz davon ab, ob das Zwischenspeichern von Ausnahmen wirksam ist.If an exception is thrown, subsequent behavior of the Lazy<T> instance depends on whether exception caching is in effect. Wenn die Lazy<T> Instanz mithilfe eines Konstruktors erstellt wurde, der keine Initialisierungsfunktion angibt, ist das Zwischenspeichern von Ausnahmen nicht wirksam.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. Ein nachfolgende Versuch, den Lazy<T> zu initialisieren, kann erfolgreich sein, und nach erfolgreicher Initialisierung gibt die IsValueCreated-Eigenschaft truezurück.A subsequent attempt to initialize the Lazy<T> might succeed, and after successful initialization the IsValueCreated property returns true. Wenn die Lazy<T> Instanz mit einer Initialisierungsfunktion erstellt wurde (angegeben durch den valueFactory-Parameter des Lazy<T>-Konstruktors), wird das Zwischenspeichern von Ausnahmen vom Thread Sicherheitsmodus gesteuert.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.

  • Wenn der Modus LazyThreadSafetyMode.ExecutionAndPublication oder LazyThreadSafetyMode.Noneist, besteht keine zweite Möglichkeit, die Lazy<T> Instanz zu initialisieren.If the mode is LazyThreadSafetyMode.ExecutionAndPublication or LazyThreadSafetyMode.None, there is no second chance to initialize the Lazy<T> instance. Wenn eine Ausnahme auftritt und in der Initialisierungsfunktion nicht behandelt wird, wird diese Ausnahme zwischengespeichert und bei nachfolgenden Zugriffen der Lazy<T>.Value-Eigenschaft erneut ausgelöst.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. Wenn eine Ausnahme ausgelöst wird, wird kein Wert erstellt. in solchen Fällen IsValueCreated falsezurückgegeben.No value is created if an exception is thrown, so in such cases IsValueCreated returns false.

  • Wenn der Modus LazyThreadSafetyMode.PublicationOnlyist, erstellt der erste Thread, der die Initialisierungsfunktion erfolgreich ausführt (oder der Parameter lose Konstruktor), den Wert für die Lazy<T> Instanz.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. Wenn die Initialisierungsfunktion eine Ausnahme in einem Thread auslöst, können andere Threads weiterhin versuchen, die Lazy<T> Instanz zu initialisieren.If the initialization function throws an exception on one thread, other threads can still try to initialize the Lazy<T> instance. Die IsValueCreated-Eigenschaft gibt falsezurück, bis der Wert erstellt wird.Until the value is created, the IsValueCreated property returns false.

Gilt für:

Siehe auch