关于C#值参数引用类型的一点疑问

img

img
如图 string 是引用类型 按照值参数引用类型的概念 个人的理解是参数D与string B都是指向了同一个区域 在方法A里面已经将这个区域的值更改了,为什么输出还是A-- 不应该是B--么

题主可以看这篇文章,气球理论: 对象气球理论_鲲鹏化羽-CSDN博客 我们将对象比作充满氢气的气球,将引用比作连着气球的绳子1)一根绳子同一时间只能连着一个气球,就如同一个引用同时只能指向一个对象。   Student s1 = new Student();   s1目前就指向一个Student对象2)一个气球可以被多根绳子连着,就如同一个对象同时可以被多个引用指向。   Student s2 = s1;   此时,s1和s2都指向同 https://blog.csdn.net/kunpeng_mubao/article/details/8244970
之前是有一张气球图的,找不到,手动画了一个示意图

img

当给D赋值时,是将D指向了另外一个对象,释放了D对原来对象的引用,所以不会改变B的值,有帮助或启发麻烦点个采纳【本回答右上角】,谢谢~~

向引用赋值,就切断了引用

你这里A(B)方法是先将B的值传给D,此时B,D指向同一个内存空间,任意改动其中一个值,另一个也会随之改变。接着进入A方法体,给D重新赋值了,所以B的值也随之改变。因为两者指向同一内存空间。