title: C#: When casting a generic type why is object required?
body: <p>Why is it required to have the (object) in the cast? It seems kind of counter-intuitive. </p>
  
  <pre><code>    public void GenerateForm&lt;T&gt;(T form)
      {
          if (form.GetType() == typeof(Form1))
          {
              Console.WriteLine(((Form1)(object)form).name);
          }
      }
  </code></pre>