Represents a value that is initialized in a lazy manner, i.e. not until it is needed
Private
Creates a new Lazy<S> value. The initializer takes the value of this Lazy<T> and uses it to create a Lazy<S>
Lazy<S>
Lazy<T>
Multiple values can be chained; they won't initialize until the last one is resolved.
the initializing function. Since this could be doing anything, it can have side effects
Gets the value of the lazy object, initializing it, if necessary
Static
Create a Lazy by providing the function that will be called when the value is first needed
Represents a value that is initialized in a lazy manner, i.e. not until it is needed