title: Nullable Value Types in C# is Int32? REAALLY an Int32 -?
body: <p>So if I want to pass a nullable value type such as a Int32? into a method, I must tell the method param that it is a nullable.</p>
  
  <pre><code>public void foo(Int32? arg){...}
  </code></pre>
  
  <p>If I pass a regular Int32 into arg it works. But if I change it to </p>
  
  <pre><code>public void foo(Int32 arg){...}
  </code></pre>
  
  <p>and pass in a nullable it freaks out. </p>
  
  <p>So my question is does the ? change the type of Int32 ?</p>
  
  <p>Is there an Int32? object or does the ? just set a flag in Int32 and make it nullable? </p>
  
  <p>Basically I am asking what is happening under the hood.</p>