Lazy<T> Class
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Provides support for lazy initialization.
Inheritance Hierarchy
System.Object
System.Lazy<T>
System.Lazy<T, TMetadata>
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<ComVisibleAttribute(False)> _
<DebuggerDisplayAttribute("ThreadSafetyMode={Mode}, IsValueCreated={IsValueCreated}, IsValueFaulted={IsValueFaulted}, Value={ValueForDebugDisplay}")> _
Public Class Lazy(Of T)
[ComVisibleAttribute(false)]
[DebuggerDisplayAttribute("ThreadSafetyMode={Mode}, IsValueCreated={IsValueCreated}, IsValueFaulted={IsValueFaulted}, Value={ValueForDebugDisplay}")]
public class Lazy<T>
Type Parameters
- T
Specifies the type of object that is being lazily initialized.
The Lazy<T> type exposes the following members.
Constructors
Name | Description | |
---|---|---|
Lazy<T>() | Initializes a new instance of the Lazy<T> class. When lazy initialization occurs, the default constructor of the target type is used. | |
Lazy<T>(Boolean) | Initializes a new instance of the Lazy<T> class. When lazy initialization occurs, the default constructor of the target type and the specified initialization mode are used. | |
Lazy<T>(Func<T>) | Initializes a new instance of the Lazy<T> class. When lazy initialization occurs, the specified initialization function is used. | |
Lazy<T>(LazyThreadSafetyMode) | Initializes a new instance of the Lazy<T> class that uses the default constructor of T and the specified thread safety mode. | |
Lazy<T>(Func<T>, Boolean) | Initializes a new instance of the Lazy<T> class. When lazy initialization occurs, the specified initialization function and initialization mode are used. | |
Lazy<T>(Func<T>, LazyThreadSafetyMode) | Initializes a new instance of the Lazy<T> class that uses the specified initialization function and thread safety mode. |
Top
Properties
Name | Description | |
---|---|---|
IsValueCreated | Gets a value that indicates whether a value has been created for this Lazy<T> instance. | |
Value | Gets the lazily initialized value of the current Lazy<T> instance. |
Top
Methods
Name | Description | |
---|---|---|
Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
ToString | Creates and returns a string representation of the Lazy<T>.Value property for this instance. (Overrides Object.ToString().) |
Top
Remarks
Lazy initialization occurs the first time the Lazy<T>.Value property is accessed.
Use an instance of Lazy<T> to defer the creation of a large or resource-intensive object or the execution of a resource-intensive task, particularly when such creation or execution might not occur during the lifetime of the program.
Version Information
Silverlight
Supported in: 5, 4
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
Thread Safety
By default, all public and protected members of the Lazy<T> class are thread safe and may be used concurrently from multiple threads. These thread-safety guarantees may be removed optionally and per instance, using parameters to the type's constructors.