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

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

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

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

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

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

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут