摘要:
把引用对象作为参数传进一个方法,实际上是在栈上新分配了一块内存保存传入的地址。如图所示,把局部变量name传入M2方法后,栈上新开了一块内存S,用来保存"joe"的地址。其实拿string来说明不太合适,因为string类是不可变的。但是为借用CLR VIA C#中现成的图咱们就将就一下了。这时如果能够直接修改s所指向的内容的话(在C#中string是不可变类,无法演示),外部的局部变量name由于和形参s指向的是同一个对象,因此name也会改变。(图1)但是如果把s指向一个新的的string时,比如:void M2(string s){ s = "new str 阅读全文