Creating a System.Func without specifying the generic argument
<p>I have the following piece of code I use in my tests which has a bit of duplication:</p>

<pre><code>Func&lt;string, User&gt; getUser = GetFirstItem&lt;User&gt;;

Func&lt;string, Plan&gt; getPlan = GetFirstItem&lt;Plan&gt;;

_planLeader = UserRoleHelper.GetUserWithAdditionalPlans(_commonDao, getUser, getPlan, 5);
</code></pre>

<p>The GetFirstItem method has the following signature:</p>

<pre><code> T GetFirstItem&lt;T&gt;(string whereClause) where T : class
</code></pre>

<p>My problem is that I am having to create two separate variables getUser and GetPlan for the 2 different function calls in order to explicitly declare the generic argument.</p>

<p>Is it possible to create a System.Func without declaring the generic type?</p>

<p>Something like:</p>

<pre><code>Func&lt;T, User&gt; getUser = GetFirstItem&lt;T&gt;;
</code></pre>

<p>This obviously will not compile as T is not defined.</p>

<p>Is there a way round this?</p>
