.NET 4.x Поясните поведение оператора == - C#

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

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

Почему == возвращает false а Equals true ? Для object a = 2; object b = 2; Я знаю что Equals на значимых типах проверяет равенство значений, а == как работает тогда ?

Решение задачи: «.NET 4.x Поясните поведение оператора ==»

textual
Листинг программы
  1. struct BitComparable
  2. {
  3.     double d;
  4.     public S3(double d) { this.d = d; }
  5. }
  6.  
  7. struct NonBitComparable
  8. {
  9.     double d; object o;
  10.     public S4(double d, object o) { this.d = d; this.o = o; }
  11. }
  12.  
  13. var x1 = new BitComparable(1 / double.PositiveInfinity); // +0
  14. var y1 = new BitComparable(1 / double.NegativeInfinity); // -0
  15. Console.WriteLine(x1.Equals(y1));
  16.  
  17. var x2 = new NonBitComparable(1 / double.PositiveInfinity, null);
  18. var y2 = new NonBitComparable(1 / double.NegativeInfinity, null);
  19. Console.WriteLine(x2.Equals(y2));
  20. выводит False и True соответственно.

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


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

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

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

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

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

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