3 / 3 / 1
Регистрация: 18.10.2009
Сообщений: 83
|
|
1 | |
Equals, GetHashCode, CompareTo09.05.2011, 06:25. Показов 5068. Ответов 1
Метки нет (Все метки)
в чем разница между этими функциями:
Equals(), GetHashCode(), CompareTo(),.....== можете привести пример для каждого пожалуйста. я понял так: a.GetHashCode()==b.GetHashCode() - генерирует и сравнивает хеш-коды значений a.CompareTo(b) - сравнивает значения a.Equals(1) - сравнивает значение и значение, которое не является ссылкой, т.е. не сидит в переменной a==b - сравнивает значения в какие случаи нуждаются в необходимости выбирать ту или иную функцию? Добавлено через 11 минут зачем это всё, если можно обойтись и обычным == например вместо a.Equals(1) написать так: b=1; if(a=b)... а a.CompareTo(b) эквивалентно a==b. И GetHashCode() по сути тоже самое Добавлено через 15 минут на счет equals ошибся, тогда еще больше теряюсь в непонятках
1
|
09.05.2011, 06:25 | |
Ответы с готовыми решениями:
1
Equals и GetHashCode и их переопределение? В чем отличие GetHashCode и Equals? Удалить методы Equals, GetHashCode и т. д. из класса Перегрузить ==, Equals, CompareTo |
мастер топоров
917 / 742 / 101
Регистрация: 16.08.2009
Сообщений: 1,476
|
||||||
09.05.2011, 15:33 | 2 | |||||
Сообщение было отмечено blase как решение
Решение
метод GetHashCode() возвращает хеш-код объекта
к примеру код:
CompareTo() это метод интерфейса IComparable и чтобы его использовать класс должен наследовать этот интерфейс и этот метод должен быть определен в классе. он сравнивает объекты по принципу "больше-меньше", метод которого описан в определённом классе. например если у вас есть класс "Яблоко" с полями "Цвет" и "Размер" и он наследует интерфейс IComparable, то при определении метода CompareTo() вы сами будете выбирать по какому признаку хотите сравнивать яблоки - по цвету, по размеру, по тому и другому или по другому какому-то признаку (например цвет приводить к шестнадцатеричному выражению, потом его в десятичному, умножать на размер яблока и уже по этому параметру сравнивать) Equals() тоже виртуальный и для его использования его следует переопределить для использования в своём классе. по поводу классов, которые описаны в библиотеках .NET Framework - нужно смотреть описание к каждой из них
2
|
09.05.2011, 15:33 | |
09.05.2011, 15:33 | |
Помогаю со студенческими работами здесь
2
Зачем переопределять методы ToString(), GetHashCode(), Equals() Как перегрузить методы Equals() и GetHashCode(), для сравнения свойств объектов? Equals() vs compareTo() Заменить compareTo на Equals Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(шестибитный асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения
PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
|
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
|
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
|
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9
Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
|
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
wget. . .
|
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin.
Есть ещё регистры,. . .
|
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps
Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
|
Angular vs React vs Vue.js
BasicMan 03.01.2025
О, друзья-разработчики и просто любопытные читатели! Сегодня мы отправимся в увлекательное путешествие по миру фронтенд-разработки, и первой остановкой станет Angular – этакий строгий немецкий. . .
|