C#中,String 类型的是值引用还是类型引用?我现在在看帮助,它说是类型引用,越看越糊涂啊。既然是类型引用,你说以下代码的结果返回值 是什么?
string a="a" ;
string b = "b";
b = a;
a ="aa";
return b
在DELPHI中,如果是引用类型的话,那么赋值过去的就是一个地址了,而不是值了。 既然string 是一个引用类型,那么,它的特殊性在那里???百思不得其解啊。请教各位大虾了。
string a="a" ;
string b = "b";
b = a;
a ="aa";
return b
在DELPHI中,如果是引用类型的话,那么赋值过去的就是一个地址了,而不是值了。 既然string 是一个引用类型,那么,它的特殊性在那里???百思不得其解啊。请教各位大虾了。
在给值过程只是拷贝,并不是引用的.
你那个代码应该返回"a"
ps;这种问题,一搜索就有很多阿,别偷懒哦。
string b = "b"; //在GC堆上分配一个对象O2,保存“b”,把它的引用赋值给b。O2的引用计数为1
b = a; //把a指向的对象(O1)的引用赋值给b,此时a和b同时指向O1。O1的引用计数为2。O2引用计数为0,等待GC回收
a ="aa"; //在GC堆上分配一个对象O3,保存"aa",把它的引用赋值给a。 O1的引用计数为1。O3的引用计数为1
return b //返回O1的引用,如果该引用被返回值接收的话,O1的引用计数为1。返回后a超出作用域,自动失去引用,O3的引用计数为0,等待GC回收