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