Страницы

Поиск по вопросам

среда, 3 октября 2018 г.

В чем проявляется “ссылочность” строк в C#

Строки в C# - ссылочный тип. Но следующий код
string s1 = "string 1"; string s2 = s1; s2 = "string 2"; Console.Write(s1);
выведет string 1. В чем же проявляется "ссылочность" строк в C#?


Ответ

Всё в порядке.
string s1 = "string 1"; string s2 = s1; bool b = string.ReferenceEquals(s1, s2); // -> true s2 = "string 2"; bool b2 = string.ReferenceEquals(s1, s2); // -> false
Т.е. до того, как вы написали s2 = "string 2", s1 и s2 ссылались на один и тот же объект, но как только вы это написали, был создан новый объект и s2 стала ссылаться на него, а s1 так и осталась ссылаться на первый объект.

Комментариев нет:

Отправить комментарий