[Перевод] 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
Продолжение и ответы
