одного объекта скопировать поле типа стринг. и к моему удивлению скопировалось значение а не ссылка на строку. var a = "1234"; var b=a; a=""; то b будет равен строчке "1234" это как так? куда копать смотреть? я был уверен что надо дергать ToString() или String.Copy...
так DeepCopy и должно копировать значения...
да я понимаю... я думал что оператор присваивания копирует ссылку, а оказывается что ссылка другая и в новой строке тоже значение, но ссылка другая. вот в чём неожиданность что глубокое копирование было выполнено неявным образом вот я и спрашиваю что я упустил?)
Скопировалась ссылка а не значение, когда ты присвоил переменной а="" то она не изменилась а создался новый обьект в памяти
тип string является неизменяемым, когда ты присваиваешь новое значение, получается пересоздание переменной.
да, врубился. спасибо!
Эмм
Ты скопировал ссылку на объект
да. я забыл что строки иммутабельны. и в моей голове переклинило и я был уверен что он сработает а-ля как стринг билдер и изменит состояние вместо создания нового объекта по новой ссылке
Похуй на это как бы
Обсуждают сегодня