ReferenceEquals неправильно работают со строками

Почему в этой ситуации метод объекта ReferenceEquals ведет себя иначе?

string a= "fg";
string b= "fg";
Console.WriteLine(object.ReferenceEquals(a, b));

Таким образом, в этой ситуации он получает результат true . В случае, если он сравнивает значения моих строк, а не ссылок. Но когда я пишу что-то вроде:

StringBuilder c = new StringBuilder("fg");
string d = c.ToString();
Console.WriteLine(object.ReferenceEquals(a, d));

В этом случае он работает нормально, и результат false , потому что он сравнивает ссылки на мои объекты.

8
задан Samuel Slade 2 February 2012 в 13:52
поделиться