title: Cannot implicitly convert type from Task<>
body: <p>I am trying to master async method syntax in .NET 4.5.  I thought I had understood the examples exactly however no matter what the type of the async method is (ie <code>Task&lt;T&gt;</code>), I always get the same type of error error on the conversion back to <code>T</code> - which I understood was pretty much automatic.  The following code produces the error:</p>
  
  <blockquote>
    <p>Cannot implicitly convert type '<code>System.Threading.Tasks.Task&lt;System.Collections.Generic.List&lt;int&gt;&gt;</code>' to '<code>System.Collections.Generic.List&lt;int&gt;</code>'</p>
  </blockquote>
  
  <pre><code>public List&lt;int&gt; TestGetMethod()
  {
      return GetIdList(); // compiler error on this line
  }
  
  
  async Task&lt;List&lt;int&gt;&gt; GetIdList()
  {
      using (HttpClient proxy = new HttpClient())
      {
          string response = await proxy.GetStringAsync("www.test.com");
          List&lt;int&gt; idList = JsonConvert.DeserializeObject&lt;List&lt;int&gt;&gt;();
          return idList;
      }
  }
  </code></pre>
  
  <p>It fails if I explicitly cast the result as well.  This:</p>
  
  <pre><code>public List&lt;int&gt; TestGetMethod()
  {
      return (List&lt;int&gt;)GetIdList();  // compiler error on this line
  }
  </code></pre>
  
  <p>somewhat predictably results in this error:</p>
  
  <blockquote>
    <p>Cannot convert type '<code>System.Threading.Tasks.Task&lt;System.Collections.Generic.List&lt;int&gt;&gt;</code>' to '<code>System.Collections.Generic.List&lt;int&gt;</code>'</p>
  </blockquote>
  
  <p>Any help greatly appreciated.</p>