[Перевод] C#. Непоследовательное сравнение
От переводчика: Это вольный перевод блогозаписи Эрика Липперта (Eric Lippert), в прошлом одного из разработчиков языка C#. Запись оформлена в виде «вопрос-ответ», я пропущу вопрос и перейду к ответу, вы можете ознакомиться с вопросом в оригинале, но там ничего особо интересного. Но, для начала, я попрошу взглянуть на следующий код, и без гугла и компилирования, попробовать выяснить что произойдет в 9 случаях сравнения и свериться с ответами (для опроса): int myInt = 1; short myShort = 1; object objInt1 = myInt; object objInt2 = myInt; object objShort = myShort; Console.WriteLine (myInt == myShort); // scenario 1 Console.WriteLine (myShort == myInt); // scenario 2 Console.WriteLine (myInt.Equals (myShort)); // scenario 3 Console.WriteLine (myShort.Equals (myInt)); // scenario 4 Console.WriteLine (objInt1 == objInt1); // scenario 5 Console.WriteLine (objInt1 == objShort); // scenario 6 Console.WriteLine (objInt1 == objInt2); // scenario 7 Console.WriteLine (Equals (objInt1, objInt2)); // scenario 8 Console.WriteLine (Equals (objInt1, objShort)); // scenario 9 Продолжение и ответы