title: typeof generic and casted type
body: <p>Let's say we have generic method:</p>
  
  <pre><code>public void GenericMethod&lt;T&gt;(T item)
  {
      var typeOf = typeof(T);
      var getType = item.GetType();
  }
  </code></pre>
  
  <p>And we are invoking it with the following parameters:</p>
  
  <pre><code>GenericMethod(1)
  GenericMethod((object) 1)
  </code></pre>
  
  <p>The results are:</p>
  
  <pre><code>typeOf = System.Int32
  getType = System.Int32
  </code></pre>
  
  <p>and</p>
  
  <pre><code>typeOf = System.Object
  getType = System.Int32
  </code></pre>
  
  <p>Can someone explain me why typeof integer casted to object returns System.Object, but .GetType() returns System.Int32?</p>