Рассмотрим этот код:
int age = 25;
short newAge = 25;
Console.WriteLine(age == newAge); //true
Console.WriteLine(newAge.Equals(age)); //false
Console.ReadLine();
Оба int и short являются примитивными типами, но сравнение с == возвращает true, а сравнение с Equals возвращает false.
Почему?
Итак, этот псевдокод работает: