Search code examples
c#.netlazy-evaluation

When should I use Lazy<T>?


I found this article about Lazy<T>: Laziness in C# 4.0 – Lazy

Can someone point me to a practical use of the Lazy<T> class in a real application? In other words, when should I use it?


Solution

  • You typically use it when you want to instantiate something the first time its actually used. This delays the cost of creating it till if/when it's needed instead of always incurring the cost.

    Usually this is preferable when the object may or may not be used and the cost of constructing it is non-trivial.