This topic has not yet been rated - Rate this topic

Lazy<T> Class

[This documentation is for preview only, and is subject to change in later releases. Blank topics are included as placeholders.]

Provides support for lazy initialization.

System.Object
  System.Lazy<T>
    System.Lazy<T, TMetadata>

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)
[SerializableAttribute]
[ComVisibleAttribute(false)]
[HostProtectionAttribute(SecurityAction.LinkDemand, Synchronization = true, 
	ExternalThreading = true)]
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.

  Name Description
Public method Supported by Portable Class Library Lazy<T>() Initializes a new instance of the Lazy<T> class. When lazy initialization occurs, the default constructor of the target type is used.
Public method Supported by Portable Class Library 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.
Public method Supported by Portable Class Library Lazy<T>(Func<T>) Initializes a new instance of the Lazy<T> class. When lazy initialization occurs, the specified initialization function is used.
Public method Supported by Portable Class Library 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.
Public method Supported by Portable Class Library 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.
Public method Supported by Portable Class Library 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
  Name Description
Public property Supported by Portable Class Library IsValueCreated Gets a value that indicates whether a value has been created for this Lazy<T> instance.
Public property Supported by Portable Class Library Value Gets the lazily initialized value of the current Lazy<T> instance.
Top
  Name Description
Public method Supported by Portable Class Library Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Supported by Portable Class Library Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public method Supported by Portable Class Library GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method Supported by Portable Class Library GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method Supported by Portable Class Library MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method Supported by Portable Class Library ToString Creates and returns a string representation of the Lazy<T>.Value property for this instance. (Overrides Object.ToString().)
Top

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.

Note Note

The HostProtectionAttribute attribute applied to this type or member has the following Resources property value: Synchronization | ExternalThreading. The HostProtectionAttribute does not affect desktop applications (which are typically started by double-clicking an icon, typing a command, or entering a URL in a browser). For more information, see the HostProtectionAttribute class or SQL Server Programming and Host Protection Attributes.

.NET Framework

Supported in: 4.5, 4

.NET Framework Client Profile

Supported in: 4

Portable Class Library

Supported in: Portable Class Library

Windows 8 Consumer Preview, Windows Server 8 Beta, Windows 7, Windows Server 2008 SP2, Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

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.

Did you find this helpful?
(1500 characters remaining)