在下面的代码段中,我有两个变量firstString
,secondString
它们具有相同的值"Hello"。所以两个变量的引用位置是相同的。
var firstString = "Hello";
var secondString = "Hello";
bool isSameReference = Object.ReferenceEquals(firstString, secondString);
//same reference for both variables
但是将secondString
值更新为“嘿”不会更新firstString
,即使它指的是相同的位置。为什么这些引用相同参考位置的变量没有得到更新?
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 如何在内部处理这个?提前致谢