В этот вопрос . мы обнаружили, что в .NET 1.1, Array.IndexOf(array, value)
искал элемент с
value.Equals(arrayElement) == true
, тогда как .NET 2.0 изменил его, чтобы искать элемент с
arrayElement.Equals(value) == true
Очевидно, что разность потенциалов между двумя результатами обусловлена полиморфизмом, но есть ли причина, почему последняя версия предпочтительнее? В более общем смысле, если у меня есть два объекта a
и b
для сравнения, есть ли веская причина предпочесть a.Equals(b)
или b.Equals(a)
?