Usage of Lazy<T>
<p>As on <a href="http://msdn.microsoft.com/en-us/library/dd642331.aspx" rel="nofollow">MSDN</a>:</p>

<p>"Use an instance of <code>Lazy&lt;T&gt;</code> to defer the creation of a large or <strong>resource-intensive</strong>   object or the execution of a resource-intensive task, particularly when such creation or execution might not occur during the lifetime of the program."</p>

<p>For a factory-pattern I could use a <code>Lazy&lt;T&gt;</code> to create instances instead of using <a href="http://msdn.microsoft.com/en-us/library/system.activator.createinstance.aspx" rel="nofollow"><code>Activator.CreateInstance</code></a>. </p>

<p>by returning a </p>

<pre><code>new Lazy&lt;T&gt;().value
</code></pre>

<p>something like:</p>

<pre><code>return Lazy&lt;IFactoryInstance&gt;(() =&gt; new Car()).Value;
</code></pre>

<p>that gives me the ability to initialize the object-instance in a different ways per type/instance etc.</p>

<p>from a method</p>

<p>But I have my doubts when reading the text from MSDN. What is a good practice for a similar piece of code? And why not use <code>Lazy&lt;T&gt;</code>?</p>
