В нижеприведенном фрагменте у меня есть две переменные firstString
и secondString
, которые имеют одинаковое значение «Hello». Таким образом, ссылочное местоположение для обеих переменных одинаково.Управление объектами
var firstString = "Hello";
var secondString = "Hello";
bool isSameReference = Object.ReferenceEquals(firstString, secondString);
//same reference for both variables
Но обновление secondString
значение, как «Эй» не обновляет firstString
, даже если он referes в том же месте. Почему эти переменные не обновляются, что относится к одному и тому же ссылочному местоположению?
secondString = "Hey..";
isSameReference = Object.ReferenceEquals(firstString, secondString);
//reference changed but firstString not updated
Обновление secondString
на это проницаемым значение, как «Hello» делает ссылку же.
secondString = "Hello";
isSameReference = Object.ReferenceEquals(firstString, secondString);
//now the reference for both variables are same
Почему C# имеет такое поведение и как внутренняя обработка frmaework обрабатывает это? Заранее спасибо
Как вы наблюдаете «ссылку» и что привело вас к предположению, что обе строки хранятся по одному адресу? – Gusdor
'secondString =" -Hello ".Substring (1);' даст другую ссылку. –
@Gusdor, используя метод Object.ReferenceEquals –