title: long and int equality, what goes on with Equals()
body: <p>I encountered this today,  I am sure there is an excellent reason but why is
  is the case for num2 equal to num1 inconsistent?</p>
  
  <pre><code>long num1 = 1;
  int num2 = 1;
  
  num1.Equals(num2);  // TRUE - cool.
  num2.Equals(num1); // FALSE - hmm?
  num2 == num1; // TRUE - ?! Whit?
  </code></pre>
  
  <p>Why is this.</p>