C#: What's the purpose of the Expression class?
<p>I'm wondering what exactly is the difference between wrapping a delegate inside <code>Expression&lt;&gt;</code> and not ?</p>

<p>I'm seeing <code>Expression&lt;Foo&gt;</code> being used a lot with LinQ, but so far I've not found any article that explains the difference between this, and just using a delegate.</p>

<p>E.g.</p>

<pre><code>Func&lt;int, bool&gt; Is42 = (value) =&gt; value == 42;
</code></pre>

<p>vs.</p>

<pre><code>Expression&lt;Func&lt;int, bool&gt;&gt; Is42 = (value) =&gt; value == 42;
</code></pre>
