title: Cast delegate to Func in C#
body: <p>I have code:</p>
  
  <pre><code>public delegate int SomeDelegate(int p);
  
  public static int Inc(int p) {
      return p + 1;
  }
  </code></pre>
  
  <p>I can cast <code>Inc</code> to <code>SomeDelegate</code> or <code>Func&lt;int, int&gt;</code>:</p>
  
  <pre><code>SomeDelegate a = Inc;
  Func&lt;int, int&gt; b = Inc;
  </code></pre>
  
  <p>but I can't cast <code>Inc</code> to <code>SomeDelegate</code> and after that cast to <code>Func&lt;int, int&gt;</code> with usual way like this:</p>
  
  <pre><code>Func&lt;int, int&gt; c = (Func&lt;int, int&gt;)a; // Сompilation error
  </code></pre>
  
  <p>How I can do it?</p>