Freigeben über


Lazy<T> Constructor (Func<T>)

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Initializes a new instance of the Lazy<T> class. When lazy initialization occurs, the specified initialization function is used.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Sub New ( _
    valueFactory As Func(Of T) _
)
public Lazy(
    Func<T> valueFactory
)

Parameters

  • valueFactory
    Type: System.Func<T>
    The delegate that is invoked to produce the lazily initialized value when it is needed.

Exceptions

Exception Condition
ArgumentNullException

valueFactory is nulla null reference (Nothing in Visual Basic).

Remarks

An instance that is created with this constructor may be used concurrently from multiple threads.

The thread safety mode of a Lazy<T> instance that is created by using this constructor is LazyThreadSafetyMode.ExecutionAndPublication. The thread safety mode describes the behavior when multiple threads try to initialize the Lazy<T> instance.

Exceptions that are thrown by valueFactory are cached. For more information, see the System.Threading.LazyThreadSafetyMode enumeration.

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.