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

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

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

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

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

textual
Листинг программы
struct BitComparable
{
    double d;
    public S3(double d) { this.d = d; }
}
 
struct NonBitComparable
{
    double d; object o;
    public S4(double d, object o) { this.d = d; this.o = o; }
}
 
var x1 = new BitComparable(1 / double.PositiveInfinity); // +0
var y1 = new BitComparable(1 / double.NegativeInfinity); // -0
Console.WriteLine(x1.Equals(y1));
 
var x2 = new NonBitComparable(1 / double.PositiveInfinity, null);
var y2 = new NonBitComparable(1 / double.NegativeInfinity, null);
Console.WriteLine(x2.Equals(y2));
выводит False и True соответственно.

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


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

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

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