Подойдя глубже в С#, я столкнулся с небольшой (странной) проблемой с равенством ссылки на объекты. Пусть говорит, что у меня две строки:
String a = "Hello world!";
String b = "Bonjour le monde";
bool equals = ReferenceEquals(a, b); // ******************* (1)
b = "Hello world!";
equals = ReferenceEquals(a, b); // ******************* (2)
(1)
Является false
, и это ожидается.
ReferenceEquals Документация говорит
ReferenceEquals сравнивает экземпляры
но затем:
- Почему (2) возвращает
true
? - Строки
a
иb
- это не тот же объект? Если да, то как они стали теми же, что я никогда не явно сделалa=b