Равенство объектов ведет себя по-разному в .NET
У меня есть эти заявления и их & apos; результаты рядом с ними.
<code>string a = "abc"; string b = "abc"; Console.Writeline(a == b); //true object x = a; object y = b; Console.Writeline(x == y); // true string c = new string(new char[] {'a','b','c'}); string d = new string(new char[] {'a','b','c'}); Console.Writeline(c == d); // true object k = c; object m = d; Console.Writeline(k.Equals(m)) //true Console.Writeline(k == m); // false </code>
Почему последнее равенство дает мне ложь?
Вопрос в том, почему (x == y) верно (k == m) неверно