Why is this code not compiling?
<p>I am getting these errors with this code in the function Doit (I am running .Net 3.5):</p>

<p>Error   1:  <code>The best overloaded method match for 'LoadPref&lt;A&gt;(string, System.Func&lt;string,A&gt;, A)' has some invalid arguments</code><br>
Error   2:  <code>Argument '2': cannot convert from 'method group' to 'System.Func&lt;string,A&gt;'</code>   </p>

<pre><code>class A : SomeObject
{

}

static class Utilities
{
    private T LoadPref&lt;T&gt;( string key, Func&lt;string, T&gt; loaderFunc, T defaultValue ) 
    {        
       if ( Prefs.HasKey( key ) )
       {
           return loaderFunc( Prefs.GetString( key ) );
       }

       return defaultValue;
    }


    private T LoadAsset&lt;T&gt;( string assetPath ) where T : SomeObject
    {
       return (T)LoadAssetInSomeWay( assetPath );
    }


    private void Doit()
    {
         A asset = LoadPref&lt;A&gt;( "key", LoadAsset, null );
    }
}
</code></pre>

<p>Anybody knows what's wrong?</p>
