I encountered this today, I am sure there is an excellent reason but why is is the case for num2 equal to num1 inconsistent?
long num1 = 1;
int num2 = 1;
num1.Equals(num2); // TRUE - cool.
num2.Equals(num1); // FALSE - hmm?
num2 == num1; // TRUE - ?! Whit?
Why is this.