Equals, GetHashCode, CompareTo - C#

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

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

в чем разница между этими функциями: Equals(), GetHashCode(), CompareTo(),.....== можете привести пример для каждого пожалуйста. я понял так: a.GetHashCode()==b.GetHashCode() - генерирует и сравнивает хеш-коды значений a.CompareTo(b) - сравнивает значения a.Equals(1) - сравнивает значение и значение, которое не является ссылкой, т.е. не сидит в переменной a==b - сравнивает значения в какие случаи нуждаются в необходимости выбирать ту или иную функцию?
зачем это всё, если можно обойтись и обычным == например вместо a.Equals(1) написать так: b=1; if(a=b)... а a.CompareTo(b) эквивалентно a==b. И GetHashCode() по сути тоже самое
на счет equals ошибся, тогда еще больше теряюсь в непонятках

Решение задачи: «Equals, GetHashCode, CompareTo»

textual
Листинг программы
            int a = 4;
            int b = 4;
            Console.WriteLine(a.GetHashCode()); //тут у меня выдало
            Console.WriteLine(b.GetHashCode()); //одинаковые значения, равным 4
            A aa = new A(4, "asd");
            A bb = new A(4, "asd");
            A cc = aa;
            Console.WriteLine(aa.GetHashCode());  //здесь хеш-коды
            Console.WriteLine(bb.GetHashCode());  // разные
            Console.WriteLine(cc.GetHashCode());  //а тут хеш-код аа равен хеш-коду сс - потому что ни оба ссылаются на один объект

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


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

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

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