.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 соответственно.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д