inference from methods are not allowed?
<p>I'm going to strike a guess at my own question... does the line commented out below fail to compile because methods and funcs are two different things?</p>

<p>Is there any way to avoid typing <code>&lt;string&gt;</code>?  If not, is there a reason why?  And if I'm right that it is because methods don't cast to funcs or vice-versa, how could the solution to inferring the type of <code>T</code> from Method <code>Test.A</code> be anything other than <code>string</code> in this example?</p>

<p>Forgive me, but it seems strange that I can clearly pass the method <code>Test.A</code> as an argument satisfying another method's parameter signature <code>Func&lt;T, T&gt;</code> (implying in my mind they are interchangeable)... but I don't get any inference for <code>T</code> at the call site.</p>

<pre><code>public static class Test
{
    public static Func&lt;T, T&gt; TestFunc&lt;T&gt;(Func&lt;T, T&gt; input)
    {
        return input;
    }

    public static string A(string val)
    {
        return val;
    }
}

public class TestStuff
{
    [Fact]
    public static void TestMe()
    {
        var expected = Guid.NewGuid().ToString();
        // this fails to compile with
        // 'type arguments for method ... cannot be inferred from usage'
        // var actual = Test.TestFunc(Test.A);
        // this succeeds
        var actual = Test.TestFunc&lt;string&gt;(Test.A);
        // test passes proving a method satisfies a Func&lt;T, T&gt; parameter
        Assert.Equal(expected, actual(expected));
    }
}
</code></pre>