在下面的代码片段中,我有两个变量firstString,secondString它们保持相同的值"Hello".因此两个变量的引用位置是相同的.
var firstString = "Hello";
var secondString = "Hello";
bool isSameReference = Object.ReferenceEquals(firstString, secondString);
//same reference for both variables
Run Code Online (Sandbox Code Playgroud)
但更新secondString值为"嘿"不会更新firstString,即使它引用相同的位置.为什么这些变量没有得到更新,这引用了相同的参考位置?
secondString = "Hey..";
isSameReference = Object.ReferenceEquals(firstString, secondString);
//reference changed but firstString not updated
Run Code Online (Sandbox Code Playgroud)
更新secondString为它的前一个值为"Hello"使引用相同.
secondString = "Hello";
isSameReference = Object.ReferenceEquals(firstString, secondString);
//now the reference for both variables are same
Run Code Online (Sandbox Code Playgroud)
为什么c#有这种行为以及frmaework internaly如何处理这个?提前致谢