Во время обучения .net(по С#) я нашел 5 способов проверки равенства между объектами.
- Метод ReferenceEquals().
- Виртуальный метод Equals(). (System.Object)
- Статический метод Equals().
- Метод Equals из интерфейса IEquatable.
- Оператор сравнения ==.
Мой вопрос:
- Почему существует так много методов Equals() и оператор сравнения?
- Какой из виртуальных Equals() или IEquatable Equals() можно использовать... (скажем, если мы используем наши собственные классы коллекции)