What is lazy initialization?
Lazy initialization is a process by which an object is not initialized until it is first called in your code. The .NET 4.0 introduces a new wrapper class, System.Lazy, for implementing the lazy initialization in your application. Lazy initialization helps you to decrease the wastage of resources and memory requirements to better performance. It also supports thread-safety.