title: What does double? mean in C#?
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/1181491/c-newbie-whats-the-difference-between-bool-and-bool">C# newbie: what&rsquo;s the difference between &ldquo;bool&rdquo; and &ldquo;bool?&rdquo; ?</a>  </p>
  </blockquote>
  
  
  
  <p>Hi, 
    While reading the code of the NUnit project's assert class, I came across this particular construct - </p>
  
  <pre><code>public static void AreEqual(double expected, double? actual, double delta)
  {
       AssertDoublesAreEqual(expected, (double)actual, delta ,null, null);
  }
  </code></pre>
  
  <p>In this function the second input parameter is entered as <code>double?</code>.
  The interesting thing is that this code compiles without issue in VS2010 (C# 4.0). 
  Anyone know why this is NOT throwing an error ? Why is <code>double?</code> considered a valid keyword and is there any special significance to the <code>?</code>.</p>