This is interesting:
Int16 s = 123; Console.WriteLine(s.Equals(123)); // False
Because on the second line 123 is Int32 the equality test returns false.
Further, s.CompareTo(123) would throw an exception.
John.