Нет, это , а не , по умолчанию ссылки проверяются на равенство.Такие операторы, как ==
, не полиморфны и по умолчанию не вызывают ничего полиморфного.Например:
string x = "Hello";
string y = new String("Hello".ToCharArray());
Console.WriteLine(x == y); // True; uses overloaded operator
object a = x;
object b = y;
Console.WriteLine(a == b); // False; uses default implementation
Вы не можете переопределить операторы равенства, но вы можете перегрузить их, как это делает строка.Должен ли это другой вопрос.Я думаю, что я обычно был бы, если бы я переопределял Equals
, но не всегда всегда.