Разница между == и Equals() - C#

Узнай цену своей работы

Формулировка задачи:

const int age = 25;
            const short newAge = 25;
 
            Console.WriteLine(age == newAge);  //true
            Console.WriteLine(newAge.Equals(age)); //false
            Console.ReadLine();
 
            Console.ReadKey();
Почему в первом значении возвращает true, во втором false? Если менять переменную newAge на int тогда true. Может кто объяснить почему так?

Решение задачи: «Разница между == и Equals()»

textual
Листинг программы
.maxstack  2
  .locals init ([0] int16 V_0)
  IL_0000:  nop
  IL_0001:  ldc.i4.s   25  // Push num onto the stack as int32, short form  <-- Как Int32
  IL_0003:  stloc.0  // вытащить последнюю переменную из стека и положить в локальную переменную c индексом 0
  IL_0004:  ldloca.s   V_0  // вычислить адрес переменной по индексу 0.  
                            // Ятп - подразумевается положить значение по вычисленному адресу в регистр
  IL_0006:  ldc.i4.s   25  // Push num onto the stack as int32, short form  <-- Как Int32
  IL_0008:  call       instance bool [mscorlib]System.Int16::Equals(int16)
  IL_000d:  call       void [mscorlib]System.Console::WriteLine(bool)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5