Строки в 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 так и осталась ссылаться на первый объект.
Комментариев нет:
Отправить комментарий