title: double.IsNaN - What is the compiler doing here
body: <p>When we do something like <code>double.IsNaN</code> -- what exactly is happening?</p>
  
  <p>If <code>double</code> was a class I would understand it, but double is a struct and it is a value type so how does C# actually call a static method on a value type?</p>