c# 中string既然是引用类型,为什么name不等于后面的赋值(niko)?
原对象重新赋值了,这时原对象的引用不会改变,新的变量即这里的zerocool.Name
指向了新的值(空间)
即先构建了一个内存对象为"ZeroCool"
,一开始zerocool.Name
指向了"ZeroCool"
,
然后声明并赋值处理中让name也指向了"ZeroCool"
其后zerocool.Name=“niko“
,让zerocool.Name
指向了新的内存对象“niko“
,这时前面的name的指向并没有变啊。
注意这里引用是对实体string
对象的引用(即对一个具体的内存空间的引用),而不是对变量的引用。
你的name是string类型的,string是c#中比较特殊的引用类型,建议你可以搜搜看